diff options
author | Ken Dyck <kd@kendyck.com> | 2011-02-11 02:20:09 +0000 |
---|---|---|
committer | Ken Dyck <kd@kendyck.com> | 2011-02-11 02:20:09 +0000 |
commit | d5090c16f8b2b3c12bb54ac235af32945357b502 (patch) | |
tree | f71eb9d140453d09f4b7e8466ecfb668f6e22cf4 /clang/lib | |
parent | c7af6fe3bd57ff3b69e68dc03183cb8976845904 (diff) | |
download | bcm5719-llvm-d5090c16f8b2b3c12bb54ac235af32945357b502.tar.gz bcm5719-llvm-d5090c16f8b2b3c12bb54ac235af32945357b502.zip |
Convert RecordLayout::DataSize to CharUnits from bits, eliminating two
unnecessary calls to RoundUpToAlignment. No changes to functionality
intended.
llvm-svn: 125356
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/AST/RecordLayout.cpp | 4 | ||||
-rw-r--r-- | clang/lib/AST/RecordLayoutBuilder.cpp | 13 | ||||
-rw-r--r-- | clang/lib/CodeGen/CGObjCMac.cpp | 2 |
3 files changed, 10 insertions, 9 deletions
diff --git a/clang/lib/AST/RecordLayout.cpp b/clang/lib/AST/RecordLayout.cpp index 2acf97523c1..a6e31a7e088 100644 --- a/clang/lib/AST/RecordLayout.cpp +++ b/clang/lib/AST/RecordLayout.cpp @@ -28,7 +28,7 @@ void ASTRecordLayout::Destroy(ASTContext &Ctx) { } ASTRecordLayout::ASTRecordLayout(const ASTContext &Ctx, CharUnits size, - unsigned alignment, unsigned datasize, + unsigned alignment, CharUnits datasize, const uint64_t *fieldoffsets, unsigned fieldcount) : Size(size), DataSize(datasize), FieldOffsets(0), Alignment(alignment), @@ -42,7 +42,7 @@ ASTRecordLayout::ASTRecordLayout(const ASTContext &Ctx, CharUnits size, // Constructor for C++ records. ASTRecordLayout::ASTRecordLayout(const ASTContext &Ctx, CharUnits size, unsigned alignment, - uint64_t datasize, + CharUnits datasize, const uint64_t *fieldoffsets, unsigned fieldcount, CharUnits nonvirtualsize, diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp index 9e7c9e5feb8..7117a02d659 100644 --- a/clang/lib/AST/RecordLayoutBuilder.cpp +++ b/clang/lib/AST/RecordLayoutBuilder.cpp @@ -1207,7 +1207,7 @@ void RecordLayoutBuilder::Layout(const ObjCInterfaceDecl *D) { // We start laying out ivars not at the end of the superclass // structure, but at the next byte following the last field. - Size = llvm::RoundUpToAlignment(SL.getDataSize(), 8); + Size = Context.toBits(SL.getDataSize()); DataSize = Size; } @@ -1684,7 +1684,8 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const { CharUnits RecordSize = toCharUnitsFromBits(Builder->Size); NewEntry = new (*this) ASTRecordLayout(*this, RecordSize, Builder->Alignment, - DataSize, Builder->FieldOffsets.data(), + toCharUnitsFromBits(DataSize), + Builder->FieldOffsets.data(), Builder->FieldOffsets.size(), toCharUnitsFromBits(NonVirtualSize), toCharUnitsFromBits(NonVirtualAlign), @@ -1700,7 +1701,7 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const { NewEntry = new (*this) ASTRecordLayout(*this, RecordSize, Builder.Alignment, - Builder.Size, + toCharUnitsFromBits(Builder.Size), Builder.FieldOffsets.data(), Builder.FieldOffsets.size()); } @@ -1760,7 +1761,7 @@ ASTContext::getObjCLayout(const ObjCInterfaceDecl *D, const ASTRecordLayout *NewEntry = new (*this) ASTRecordLayout(*this, RecordSize, Builder.Alignment, - Builder.DataSize, + toCharUnitsFromBits(Builder.DataSize), Builder.FieldOffsets.data(), Builder.FieldOffsets.size()); @@ -1857,7 +1858,7 @@ static void DumpCXXRecordLayout(llvm::raw_ostream &OS, } OS << " sizeof=" << Layout.getSize().getQuantity(); - OS << ", dsize=" << Layout.getDataSize() / 8; + OS << ", dsize=" << Layout.getDataSize().getQuantity(); OS << ", align=" << Layout.getAlignment() / 8 << '\n'; OS << " nvsize=" << Layout.getNonVirtualSize().getQuantity(); OS << ", nvalign=" << Layout.getNonVirtualAlign().getQuantity() << '\n'; @@ -1878,7 +1879,7 @@ void ASTContext::DumpRecordLayout(const RecordDecl *RD, OS << "\nLayout: "; OS << "<ASTRecordLayout\n"; OS << " Size:" << toBits(Info.getSize()) << "\n"; - OS << " DataSize:" << Info.getDataSize() << "\n"; + OS << " DataSize:" << toBits(Info.getDataSize()) << "\n"; OS << " Alignment:" << Info.getAlignment() << "\n"; OS << " FieldOffsets: ["; for (unsigned i = 0, e = Info.getFieldCount(); i != e; ++i) { diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp index 83672f8b10f..7c679b90590 100644 --- a/clang/lib/CodeGen/CGObjCMac.cpp +++ b/clang/lib/CodeGen/CGObjCMac.cpp @@ -4950,7 +4950,7 @@ void CGObjCNonFragileABIMac::GetClassSizeInfo(const ObjCImplementationDecl *OID, CGM.getContext().getASTObjCImplementationLayout(OID); // InstanceSize is really instance end. - InstanceSize = llvm::RoundUpToAlignment(RL.getDataSize(), 8) / 8; + InstanceSize = RL.getDataSize().getQuantity(); // If there are no fields, the start is the same as the end. if (!RL.getFieldCount()) |