diff options
author | Chris Lattner <sabre@nondot.org> | 2008-03-19 05:19:41 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-03-19 05:19:41 +0000 |
commit | 36b6a0a63e87803a85080c639ad8b61e8bb5f9ee (patch) | |
tree | 7bf236cc8f479fc39ebee8e8a9cf31f7e160de5c /lib/CodeGen/CGExprAgg.cpp | |
parent | d6c1360c2bf234c73572a865f119d0518aca8154 (diff) |
simplify the clang codegen by using the new Builder.CreateStructGEP method.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48534 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGExprAgg.cpp')
-rw-r--r-- | lib/CodeGen/CGExprAgg.cpp | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index 325ac2109e..f57c2ed881 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -268,15 +268,9 @@ void AggExprEmitter::EmitNonConstInit(InitListExpr *E) { if (const llvm::ArrayType *AType = dyn_cast<llvm::ArrayType>(DestType)) { unsigned NumInitElements = E->getNumInits(); - llvm::Value *Idxs[] = { - llvm::Constant::getNullValue(llvm::Type::Int32Ty), - NULL - }; - llvm::Value *NextVal = NULL; unsigned i; for (i = 0; i != NumInitElements; ++i) { - Idxs[1] = llvm::ConstantInt::get(llvm::Type::Int32Ty, i); - NextVal = Builder.CreateGEP(DestPtr, Idxs, Idxs + 2,".array"); + llvm::Value *NextVal = Builder.CreateStructGEP(DestPtr, i, ".array"); Expr *Init = E->getInit(i); if (isa<InitListExpr>(Init)) CGF.EmitAggExpr(Init, NextVal, VolatileDest); @@ -289,8 +283,7 @@ void AggExprEmitter::EmitNonConstInit(InitListExpr *E) { QualType QType = E->getInit(0)->getType(); const llvm::Type *EType = AType->getElementType(); for (/*Do not initialize i*/; i < NumArrayElements; ++i) { - Idxs[1] = llvm::ConstantInt::get(llvm::Type::Int32Ty, i); - NextVal = Builder.CreateGEP(DestPtr, Idxs, Idxs + 2,".array"); + llvm::Value *NextVal = Builder.CreateStructGEP(DestPtr, i, ".array"); if (EType->isFirstClassType()) Builder.CreateStore(llvm::Constant::getNullValue(EType), NextVal); else |