diff options
author | Misha Brukman <brukman+llvm@gmail.com> | 2004-07-23 01:09:52 +0000 |
---|---|---|
committer | Misha Brukman <brukman+llvm@gmail.com> | 2004-07-23 01:09:52 +0000 |
commit | c8e876470572817295362737d8fbcf460e4cbfa8 (patch) | |
tree | ace74a0e73097675c158dc15563bb906478a89ba /lib/Target/TargetData.cpp | |
parent | e3fa53ee4df41925c90ad6cc6a4f132284a1ae66 (diff) |
* Add BoolAlignment to TargetData, default is 1 byte, size 1 byte
* Convert tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15120 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/TargetData.cpp')
-rw-r--r-- | lib/Target/TargetData.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/Target/TargetData.cpp b/lib/Target/TargetData.cpp index e5f391b6e2..8aea154308 100644 --- a/lib/Target/TargetData.cpp +++ b/lib/Target/TargetData.cpp @@ -30,7 +30,7 @@ namespace { } static inline void getTypeInfo(const Type *Ty, const TargetData *TD, - uint64_t &Size, unsigned char &Alignment); + uint64_t &Size, unsigned char &Alignment); //===----------------------------------------------------------------------===// // Support for StructLayout @@ -42,7 +42,7 @@ StructLayout::StructLayout(const StructType *ST, const TargetData &TD) { // Loop over each of the elements, placing them in memory... for (StructType::element_iterator TI = ST->element_begin(), - TE = ST->element_end(); TI != TE; ++TI) { + TE = ST->element_end(); TI != TE; ++TI) { const Type *Ty = *TI; unsigned char A; unsigned TyAlign; @@ -79,7 +79,7 @@ TargetData::TargetData(const std::string &TargetName, unsigned char PtrAl, unsigned char DoubleAl, unsigned char FloatAl, unsigned char LongAl, unsigned char IntAl, unsigned char ShortAl, - unsigned char ByteAl) { + unsigned char ByteAl, unsigned char BoolAl) { // If this assert triggers, a pass "required" TargetData information, but the // top level tool did not provide one for it. We do not want to default @@ -97,6 +97,7 @@ TargetData::TargetData(const std::string &TargetName, IntAlignment = IntAl; ShortAlignment = ShortAl; ByteAlignment = ByteAl; + BoolAlignment = BoolAl; } TargetData::TargetData(const std::string &ToolName, const Module *M) { @@ -109,6 +110,7 @@ TargetData::TargetData(const std::string &ToolName, const Module *M) { IntAlignment = 4; ShortAlignment = 2; ByteAlignment = 1; + BoolAlignment = 1; } static std::map<std::pair<const TargetData*,const StructType*>, @@ -146,11 +148,11 @@ const StructLayout *TargetData::getStructLayout(const StructType *Ty) const { } static inline void getTypeInfo(const Type *Ty, const TargetData *TD, - uint64_t &Size, unsigned char &Alignment) { + uint64_t &Size, unsigned char &Alignment) { assert(Ty->isSized() && "Cannot getTypeInfo() on a type that is unsized!"); switch (Ty->getTypeID()) { + case Type::BoolTyID: Size = 1; Alignment = TD->getBoolAlignment(); return; case Type::VoidTyID: - case Type::BoolTyID: case Type::UByteTyID: case Type::SByteTyID: Size = 1; Alignment = TD->getByteAlignment(); return; case Type::UShortTyID: @@ -212,7 +214,7 @@ const Type *TargetData::getIntPtrType() const { uint64_t TargetData::getIndexedOffset(const Type *ptrTy, - const std::vector<Value*> &Idx) const { + const std::vector<Value*> &Idx) const { const Type *Ty = ptrTy; assert(isa<PointerType>(Ty) && "Illegal argument for getIndexedOffset()"); uint64_t Result = 0; |