diff options
author | Chris Lattner <sabre@nondot.org> | 2008-03-19 05:24:56 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-03-19 05:24:56 +0000 |
commit | 572cf09ae8a78af1c56d40b016ec4cf1837163ac (patch) | |
tree | 74a71301bb1e783cca4c680cfce7c6dc250e6cb4 /lib/CodeGen | |
parent | 36b6a0a63e87803a85080c639ad8b61e8bb5f9ee (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.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 40 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenTypes.cpp | 7 |
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); |