Add and use a helper elements() to StructType. NFC.

llvm-svn: 222553
This commit is contained in:
Rafael Espindola 2014-11-21 18:53:05 +00:00
parent ef3e42b8b5
commit 334b73f470
2 changed files with 6 additions and 3 deletions

View File

@ -275,6 +275,10 @@ public:
element_iterator element_begin() const { return ContainedTys; }
element_iterator element_end() const { return &ContainedTys[NumContainedTys];}
ArrayRef<Type *> const elements() const {
return ArrayRef<Type*>(&*element_begin(), getNumElements());
}
/// isLayoutIdentical - Return true if this is layout identical to the
/// specified struct.
bool isLayoutIdentical(StructType *Other) const;

View File

@ -104,9 +104,8 @@ struct AnonStructTypeKeyInfo {
bool isPacked;
KeyTy(const ArrayRef<Type*>& E, bool P) :
ETypes(E), isPacked(P) {}
KeyTy(const StructType* ST) :
ETypes(ArrayRef<Type*>(ST->element_begin(), ST->element_end())),
isPacked(ST->isPacked()) {}
KeyTy(const StructType *ST)
: ETypes(ST->elements()), isPacked(ST->isPacked()) {}
bool operator==(const KeyTy& that) const {
if (isPacked != that.isPacked)
return false;