diff options
Diffstat (limited to 'include/llvm/IR/DataLayout.h')
-rw-r--r-- | include/llvm/IR/DataLayout.h | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/include/llvm/IR/DataLayout.h b/include/llvm/IR/DataLayout.h index 19a3a6661feb6..173121b72ffd6 100644 --- a/include/llvm/IR/DataLayout.h +++ b/include/llvm/IR/DataLayout.h @@ -20,7 +20,6 @@ #ifndef LLVM_IR_DATALAYOUT_H #define LLVM_IR_DATALAYOUT_H -#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallVector.h" #include "llvm/IR/DerivedTypes.h" #include "llvm/IR/Type.h" @@ -34,8 +33,6 @@ typedef struct LLVMOpaqueTargetData *LLVMTargetDataRef; namespace llvm { class Value; -class Type; -class IntegerType; class StructType; class StructLayout; class Triple; @@ -236,14 +233,14 @@ public: /// on any known one. This returns false if the integer width is not legal. /// /// The width is specified in bits. - bool isLegalInteger(unsigned Width) const { + bool isLegalInteger(uint64_t Width) const { for (unsigned LegalIntWidth : LegalIntWidths) if (LegalIntWidth == Width) return true; return false; } - bool isIllegalInteger(unsigned Width) const { return !isLegalInteger(Width); } + bool isIllegalInteger(uint64_t Width) const { return !isLegalInteger(Width); } /// Returns true if the given alignment exceeds the natural stack alignment. bool exceedsNaturalStackAlignment(unsigned Align) const { @@ -387,7 +384,7 @@ public: /// returns 12 or 16 for x86_fp80, depending on alignment. uint64_t getTypeAllocSize(Type *Ty) const { // Round up to the next alignment boundary. - return RoundUpToAlignment(getTypeStoreSize(Ty), getABITypeAlignment(Ty)); + return alignTo(getTypeStoreSize(Ty), getABITypeAlignment(Ty)); } /// \brief Returns the offset in bits between successive objects of the @@ -430,19 +427,20 @@ public: /// \brief Returns the largest legal integer type, or null if none are set. Type *getLargestLegalIntType(LLVMContext &C) const { - unsigned LargestSize = getLargestLegalIntTypeSize(); + unsigned LargestSize = getLargestLegalIntTypeSizeInBits(); return (LargestSize == 0) ? nullptr : Type::getIntNTy(C, LargestSize); } /// \brief Returns the size of largest legal integer type size, or 0 if none /// are set. - unsigned getLargestLegalIntTypeSize() const; + unsigned getLargestLegalIntTypeSizeInBits() const; /// \brief Returns the offset from the beginning of the type for the specified /// indices. /// + /// Note that this takes the element type, not the pointer type. /// This is used to implement getelementptr. - uint64_t getIndexedOffset(Type *Ty, ArrayRef<Value *> Indices) const; + int64_t getIndexedOffsetInType(Type *ElemTy, ArrayRef<Value *> Indices) const; /// \brief Returns a StructLayout object, indicating the alignment of the /// struct, its size, and the offsets of its fields. @@ -475,7 +473,7 @@ inline LLVMTargetDataRef wrap(const DataLayout *P) { class StructLayout { uint64_t StructSize; unsigned StructAlignment; - bool IsPadded : 1; + unsigned IsPadded : 1; unsigned NumElements : 31; uint64_t MemberOffsets[1]; // variable sized array! public: |