Rename classes and collections that maintain record layout information.
Now, at AST level record info is maintained by ASTRecordLayout class.
Now, at code gen level record info is maintained by CGRecordLayout class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43619 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/CodeGen/CodeGenFunction.cpp b/CodeGen/CodeGenFunction.cpp
index 03d125f..e0d55b5 100644
--- a/CodeGen/CodeGenFunction.cpp
+++ b/CodeGen/CodeGenFunction.cpp
@@ -126,14 +126,14 @@
BB->setName(N);
}
-/// getRecordLayoutInfo - Return record layout info.
-const RecordLayoutInfo *CodeGenFunction::getRecordLayoutInfo(CodeGenTypes &CGT,
- QualType RTy) {
+/// getCGRecordLayout - Return record layout info.
+const CGRecordLayout *CodeGenFunction::getCGRecordLayout(CodeGenTypes &CGT,
+ QualType RTy) {
assert (isa<RecordType>(RTy)
&& "Unexpected type. RecordType expected here.");
const llvm::Type *Ty = ConvertType(RTy);
assert (Ty && "Unable to find llvm::Type");
- return CGT.getRecordLayoutInfo(Ty);
+ return CGT.getCGRecordLayout(Ty);
}
diff --git a/CodeGen/CodeGenFunction.h b/CodeGen/CodeGenFunction.h
index 5980e51..e4bf09b 100644
--- a/CodeGen/CodeGenFunction.h
+++ b/CodeGen/CodeGenFunction.h
@@ -73,7 +73,7 @@
namespace CodeGen {
class CodeGenModule;
class CodeGenTypes;
- class RecordLayoutInfo;
+ class CGRecordLayout;
/// RValue - This trivial value class is used to represent the result of an
/// expression that is evaluated. It can be one of three things: either a
@@ -298,8 +298,8 @@
/// then reuse it.
void StartBlock(const char *N);
- /// getRecordLayoutInfo - Return record layout info.
- const RecordLayoutInfo *getRecordLayoutInfo(CodeGenTypes &CGT, QualType RTy);
+ /// getCGRecordLayout - Return record layout info.
+ const CGRecordLayout *getCGRecordLayout(CodeGenTypes &CGT, QualType RTy);
//===--------------------------------------------------------------------===//
// Declaration Emission
//===--------------------------------------------------------------------===//
diff --git a/CodeGen/CodeGenTypes.cpp b/CodeGen/CodeGenTypes.cpp
index d19b0a9..08dcf24 100644
--- a/CodeGen/CodeGenTypes.cpp
+++ b/CodeGen/CodeGenTypes.cpp
@@ -22,7 +22,7 @@
using namespace CodeGen;
namespace {
- /// RecordOrganizer - This helper class, used by RecordLayoutInfo, layouts
+ /// RecordOrganizer - This helper class, used by CGRecordLayout, layouts
/// structs and unions. It manages transient information used during layout.
/// FIXME : At the moment assume
/// - one to one mapping between AST FieldDecls and
@@ -49,7 +49,7 @@
/// layoutStructFields - Do the actual work and lay out all fields. Create
/// corresponding llvm struct type. This should be invoked only after
/// all fields are added.
- void layoutStructFields(const RecordLayout &RL);
+ void layoutStructFields(const ASTRecordLayout &RL);
/// layoutUnionFields - Do the actual work and lay out all fields. Create
/// corresponding llvm struct type. This should be invoked only after
@@ -78,11 +78,11 @@
}
CodeGenTypes::~CodeGenTypes() {
- for(llvm::DenseMap<const llvm::Type *, RecordLayoutInfo *>::iterator
- I = RecordLayouts.begin(), E = RecordLayouts.end();
+ for(llvm::DenseMap<const llvm::Type *, CGRecordLayout *>::iterator
+ I = CGRecordLayouts.begin(), E = CGRecordLayouts.end();
I != E; ++I)
delete I->second;
- RecordLayouts.clear();
+ CGRecordLayouts.clear();
}
/// ConvertType - Convert the specified type to its LLVM form.
@@ -258,13 +258,13 @@
RecordOrganizer RO(*this);
for (unsigned i = 0, e = RD->getNumMembers(); i != e; ++i)
RO.addField(RD->getMember(i));
- const RecordLayout &RL = Context.getRecordLayout(RD, SourceLocation());
+ const ASTRecordLayout &RL = Context.getASTRecordLayout(RD, SourceLocation());
RO.layoutStructFields(RL);
// Get llvm::StructType.
- RecordLayoutInfo *RLI = new RecordLayoutInfo(RO.getLLVMType());
+ CGRecordLayout *RLI = new CGRecordLayout(RO.getLLVMType());
ResultType = RLI->getLLVMType();
- RecordLayouts[ResultType] = RLI;
+ CGRecordLayouts[ResultType] = RLI;
// Refine any OpaqueType associated with this RecordDecl.
OpaqueTy->refineAbstractTypeTo(ResultType);
@@ -285,9 +285,9 @@
RO.layoutUnionFields();
// Get llvm::StructType.
- RecordLayoutInfo *RLI = new RecordLayoutInfo(RO.getLLVMType());
+ CGRecordLayout *RLI = new CGRecordLayout(RO.getLLVMType());
ResultType = RLI->getLLVMType();
- RecordLayouts[ResultType] = RLI;
+ CGRecordLayouts[ResultType] = RLI;
} else {
std::vector<const llvm::Type*> Fields;
ResultType = llvm::StructType::get(Fields);
@@ -339,12 +339,12 @@
FieldInfo[FD] = No;
}
-/// getRecordLayoutInfo - Return record layout info for the given llvm::Type.
-const RecordLayoutInfo *
-CodeGenTypes::getRecordLayoutInfo(const llvm::Type* Ty) const {
- llvm::DenseMap<const llvm::Type*, RecordLayoutInfo *>::iterator I
- = RecordLayouts.find(Ty);
- assert (I != RecordLayouts.end()
+/// getCGRecordLayout - Return record layout info for the given llvm::Type.
+const CGRecordLayout *
+CodeGenTypes::getCGRecordLayout(const llvm::Type* Ty) const {
+ llvm::DenseMap<const llvm::Type*, CGRecordLayout *>::iterator I
+ = CGRecordLayouts.find(Ty);
+ assert (I != CGRecordLayouts.end()
&& "Unable to find record layout information for type");
return I->second;
}
@@ -364,7 +364,7 @@
/// - Ignore bit fields
/// - Ignore field aligments
/// - Ignore packed structs
-void RecordOrganizer::layoutStructFields(const RecordLayout &RL) {
+void RecordOrganizer::layoutStructFields(const ASTRecordLayout &RL) {
// FIXME : Use SmallVector
Cursor = 0;
FieldNo = 0;
diff --git a/CodeGen/CodeGenTypes.h b/CodeGen/CodeGenTypes.h
index b897135..6712b8e 100644
--- a/CodeGen/CodeGenTypes.h
+++ b/CodeGen/CodeGenTypes.h
@@ -37,12 +37,12 @@
namespace CodeGen {
class CodeGenTypes;
- /// RecordLayoutInfo - This class handles struct and union layout info while
+ /// CGRecordLayout - This class handles struct and union layout info while
/// lowering AST types to LLVM types.
- class RecordLayoutInfo {
- RecordLayoutInfo(); // DO NOT IMPLEMENT
+ class CGRecordLayout {
+ CGRecordLayout(); // DO NOT IMPLEMENT
public:
- RecordLayoutInfo(llvm::Type *T) : STy(T) {
+ CGRecordLayout(llvm::Type *T) : STy(T) {
// FIXME : Collect info about fields that requires adjustments
// (i.e. fields that do not directly map to llvm struct fields.)
}
@@ -66,11 +66,11 @@
llvm::DenseMap<const TagDecl*, llvm::Type*> TagDeclTypes;
- /// RecordLayouts - This maps llvm struct type with corresponding
+ /// CGRecordLayouts - This maps llvm struct type with corresponding
/// record layout info.
- /// FIXME : If RecordLayoutInfo is less than 16 bytes then use
+ /// FIXME : If CGRecordLayout is less than 16 bytes then use
/// inline it in the map.
- llvm::DenseMap<const llvm::Type*, RecordLayoutInfo *> RecordLayouts;
+ llvm::DenseMap<const llvm::Type*, CGRecordLayout *> CGRecordLayouts;
/// FieldInfo - This maps struct field with corresponding llvm struct type
/// field no. This info is populated by record organizer.
@@ -106,7 +106,7 @@
void DecodeArgumentTypes(const FunctionTypeProto &FTP,
std::vector<const llvm::Type*> &ArgTys);
- const RecordLayoutInfo *getRecordLayoutInfo(const llvm::Type*) const;
+ const CGRecordLayout *getCGRecordLayout(const llvm::Type*) const;
/// getLLVMFieldNo - Return llvm::StructType element number
/// that corresponds to the field FD.