aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-03-19 05:24:56 +0000
committerChris Lattner <sabre@nondot.org>2008-03-19 05:24:56 +0000
commit572cf09ae8a78af1c56d40b016ec4cf1837163ac (patch)
tree74a71301bb1e783cca4c680cfce7c6dc250e6cb4 /lib/CodeGen
parent36b6a0a63e87803a85080c639ad8b61e8bb5f9ee (diff)
simplify code by using the variadic StructType::get method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48535 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/CGObjCGNU.cpp4
-rw-r--r--lib/CodeGen/CodeGenModule.cpp40
-rw-r--r--lib/CodeGen/CodeGenTypes.cpp7
3 files changed, 24 insertions, 27 deletions
diff --git a/lib/CodeGen/CGObjCGNU.cpp b/lib/CodeGen/CGObjCGNU.cpp
index f0d6f554d5..1cc5cffb82 100644
--- a/lib/CodeGen/CGObjCGNU.cpp
+++ b/lib/CodeGen/CGObjCGNU.cpp
@@ -50,8 +50,8 @@ llvm::Value *CGObjCGNU::generateMessageSend(llvm::LLVMFoldingBuilder &Builder,
// Get the selector Type.
const llvm::Type *PtrToInt8Ty =
llvm::PointerType::getUnqual(llvm::Type::Int8Ty);
- std::vector<const llvm::Type*> Str2(2, PtrToInt8Ty);
- const llvm::Type *SelStructTy = llvm::StructType::get(Str2);
+ const llvm::Type *SelStructTy =
+ llvm::StructType::get(PtrToInt8Ty, PtrToInt8Ty, NULL);
const llvm::Type *SelTy = llvm::PointerType::getUnqual(SelStructTy);
// Look up the selector.
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index 43f399a61f..b5d9db98ef 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -81,38 +81,36 @@ void CodeGenModule::EmitGlobalCtors() {
VoidArgs,
false);
// i32, function type pair
- CtorFields.push_back(llvm::PointerType::getUnqual(CtorFuncTy));
- llvm::StructType* CtorStructTy = llvm::StructType::get(CtorFields, false);
+ const llvm::Type *FPType = llvm::PointerType::getUnqual(CtorFuncTy);
+ llvm::StructType* CtorStructTy =
+ llvm::StructType::get(llvm::Type::Int32Ty, FPType, NULL);
// Array of fields
- llvm::ArrayType* GlobalCtorsTy = llvm::ArrayType::get(CtorStructTy,
- GlobalCtors.size());
+ llvm::ArrayType* GlobalCtorsTy =
+ llvm::ArrayType::get(CtorStructTy, GlobalCtors.size());
- const std::string GlobalCtorsVar = std::string("llvm.global_ctors");
// Define the global variable
- llvm::GlobalVariable *GlobalCtorsVal = new llvm::GlobalVariable(
- GlobalCtorsTy,
- false,
- llvm::GlobalValue::AppendingLinkage,
- (llvm::Constant*)0,
- GlobalCtorsVar,
- &TheModule);
+ llvm::GlobalVariable *GlobalCtorsVal =
+ new llvm::GlobalVariable(GlobalCtorsTy, false,
+ llvm::GlobalValue::AppendingLinkage,
+ (llvm::Constant*)0, "llvm.global_ctors",
+ &TheModule);
// Populate the array
std::vector<llvm::Constant*> CtorValues;
- llvm::Constant *MagicNumber = llvm::ConstantInt::get(llvm::IntegerType::Int32Ty,
- 65535,
- false);
+ llvm::Constant *MagicNumber =
+ llvm::ConstantInt::get(llvm::Type::Int32Ty, 65535, false);
+ std::vector<llvm::Constant*> StructValues;
for (std::vector<llvm::Constant*>::iterator I = GlobalCtors.begin(),
- E = GlobalCtors.end(); I != E; ++I) {
- std::vector<llvm::Constant*> StructValues;
+ E = GlobalCtors.end(); I != E; ++I) {
+ StructValues.clear();
StructValues.push_back(MagicNumber);
StructValues.push_back(*I);
- llvm::Constant* CtorEntry = llvm::ConstantStruct::get(CtorStructTy, StructValues);
- CtorValues.push_back(CtorEntry);
+ CtorValues.push_back(llvm::ConstantStruct::get(CtorStructTy, StructValues));
}
- llvm::Constant* CtorArray = llvm::ConstantArray::get(GlobalCtorsTy, CtorValues);
- GlobalCtorsVal->setInitializer(CtorArray);
+
+ GlobalCtorsVal->setInitializer(llvm::ConstantArray::get(GlobalCtorsTy,
+ CtorValues));
}
diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp
index 9a669e8705..65c5757edb 100644
--- a/lib/CodeGen/CodeGenTypes.cpp
+++ b/lib/CodeGen/CodeGenTypes.cpp
@@ -189,10 +189,9 @@ const llvm::Type *CodeGenTypes::ConvertNewType(QualType T) {
break;
}
case Type::Complex: {
- std::vector<const llvm::Type*> Elts;
- Elts.push_back(ConvertType(cast<ComplexType>(Ty).getElementType()));
- Elts.push_back(Elts[0]);
- return llvm::StructType::get(Elts);
+ const llvm::Type *EltTy =
+ ConvertType(cast<ComplexType>(Ty).getElementType());
+ return llvm::StructType::get(EltTy, EltTy, NULL);
}
case Type::Pointer: {
const PointerType &P = cast<PointerType>(Ty);