Author: greened Date: Tue Sep 4 11:14:57 2007 New Revision: 41698 URL: http://llvm.org/viewvc/llvm-project?rev=41698&view=rev Log: Update for new GEP interface.
Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=41698&r1=41697&r2=41698&view=diff ============================================================================== --- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Tue Sep 4 11:14:57 2007 @@ -478,7 +478,7 @@ ConstantInt::get(Type::Int32Ty, FieldNo) }; - Loc = Builder.CreateGEP(Loc, Idxs, 2, "tmp"); + Loc = Builder.CreateGEP(Loc, Idxs, Idxs + 2, "tmp"); LocStack.push_back(Loc); } void ExitField() { @@ -1165,8 +1165,9 @@ if (isPaddingElement(STy, i)) continue; Constant *Idx = ConstantInt::get(Type::Int32Ty, i); - Value *DElPtr = Builder.CreateGEP(DestPtr, Zero, Idx, "tmp"); - Value *SElPtr = Builder.CreateGEP(SrcPtr, Zero, Idx, "tmp"); + Value *Idxs[2] = { Zero, Idx }; + Value *DElPtr = Builder.CreateGEP(DestPtr, Idxs, Idxs + 2, "tmp"); + Value *SElPtr = Builder.CreateGEP(SrcPtr, Idxs, Idxs + 2, "tmp"); CopyAggregate(DElPtr, SElPtr, isDstVolatile, isSrcVolatile, Alignment, Builder); } @@ -1175,8 +1176,9 @@ Constant *Zero = ConstantInt::get(Type::Int32Ty, 0); for (unsigned i = 0, e = ATy->getNumElements(); i != e; ++i) { Constant *Idx = ConstantInt::get(Type::Int32Ty, i); - Value *DElPtr = Builder.CreateGEP(DestPtr, Zero, Idx, "tmp"); - Value *SElPtr = Builder.CreateGEP(SrcPtr, Zero, Idx, "tmp"); + Value *Idxs[2] = { Zero, Idx }; + Value *DElPtr = Builder.CreateGEP(DestPtr, Idxs, Idxs + 2, "tmp"); + Value *SElPtr = Builder.CreateGEP(SrcPtr, Idxs, Idxs + 2, "tmp"); CopyAggregate(DElPtr, SElPtr, isDstVolatile, isSrcVolatile, Alignment, Builder); } @@ -1246,14 +1248,18 @@ Constant *Zero = ConstantInt::get(Type::Int32Ty, 0); for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) { Constant *Idx = ConstantInt::get(Type::Int32Ty, i); - ZeroAggregate(Builder.CreateGEP(DestPtr, Zero, Idx, "tmp"), Builder); + Value *Idxs[2] = { Zero, Idx }; + ZeroAggregate(Builder.CreateGEP(DestPtr, Idxs, Idxs + 2, "tmp"), + Builder); } } else { const ArrayType *ATy = cast<ArrayType>(ElTy); Constant *Zero = ConstantInt::get(Type::Int32Ty, 0); for (unsigned i = 0, e = ATy->getNumElements(); i != e; ++i) { Constant *Idx = ConstantInt::get(Type::Int32Ty, i); - ZeroAggregate(Builder.CreateGEP(DestPtr, Zero, Idx, "tmp"), Builder); + Value *Idxs[2] = { Zero, Idx }; + ZeroAggregate(Builder.CreateGEP(DestPtr, Idxs, Idxs + 2, "tmp"), + Builder); } } } @@ -2708,8 +2714,9 @@ if (cast<PointerType>(Loc->getType())->getElementType() != StructTy) // This always deals with pointer types so BitCast is appropriate Loc = Builder.CreateBitCast(Loc, PointerType::get(StructTy), "tmp"); - - LocStack.push_back(Builder.CreateGEP(Loc, Zero, FIdx, "tmp")); + + Value *Idxs[2] = { Zero, FIdx }; + LocStack.push_back(Builder.CreateGEP(Loc, Idxs, Idxs + 2, "tmp")); } void ExitField() { LocStack.pop_back(); @@ -4973,23 +4980,27 @@ Value *SrcComplex, bool isVolatile) { Value *I0 = ConstantInt::get(Type::Int32Ty, 0); Value *I1 = ConstantInt::get(Type::Int32Ty, 1); + Value *Idxs[2] = { I0, I0 }; - Value *RealPtr = Builder.CreateGEP(SrcComplex, I0, I0, "real"); + Value *RealPtr = Builder.CreateGEP(SrcComplex, Idxs, Idxs + 2, "real"); Real = Builder.CreateLoad(RealPtr, isVolatile, "real"); - - Value *ImagPtr = Builder.CreateGEP(SrcComplex, I0, I1, "real"); + + Idxs[1] = I1; + Value *ImagPtr = Builder.CreateGEP(SrcComplex, Idxs, Idxs + 2, "real"); Imag = Builder.CreateLoad(ImagPtr, isVolatile, "imag"); } void TreeToLLVM::EmitStoreToComplex(Value *DestComplex, Value *Real, Value *Imag, bool isVolatile) { Value *I0 = ConstantInt::get(Type::Int32Ty, 0); - Value *I1 = ConstantInt::get(Type::Int32Ty, 1); - - Value *RealPtr = Builder.CreateGEP(DestComplex, I0, I0, "real"); + Value *I1 = ConstantInt::get(Type::Int32Ty, 1); + Value *Idxs[2] = { I0, I0 }; + + Value *RealPtr = Builder.CreateGEP(DestComplex, Idxs, Idxs + 2, "real"); Builder.CreateStore(Real, RealPtr, isVolatile); - Value *ImagPtr = Builder.CreateGEP(DestComplex, I0, I1, "real"); + Idxs[1] = I1; + Value *ImagPtr = Builder.CreateGEP(DestComplex, Idxs, Idxs + 2, "real"); Builder.CreateStore(Imag, ImagPtr, isVolatile); } @@ -5198,8 +5209,8 @@ // If this is an index into an LLVM array, codegen as a GEP. if (isArrayCompatible(ArrayType)) { - Value *Ptr = Builder.CreateGEP(ArrayAddr,ConstantInt::get(Type::Int32Ty, 0), - IndexVal, "tmp"); + Value *Idxs[2] = { ConstantInt::get(Type::Int32Ty, 0), IndexVal }; + Value *Ptr = Builder.CreateGEP(ArrayAddr, Idxs, Idxs + 2, "tmp"); return BitCastToType(Ptr, PointerType::get(ConvertType(TREE_TYPE(exp)))); } @@ -5282,9 +5293,8 @@ uint32_t MemberIndex = CI->getZExtValue(); assert(MemberIndex < StructTy->getNumContainedTypes() && "Field Idx out of range!"); - FieldPtr = Builder.CreateGEP(StructAddrLV.Ptr, - Constant::getNullValue(Type::Int32Ty), CI, - "tmp"); + Value *Idxs[2] = { Constant::getNullValue(Type::Int32Ty), CI }; + FieldPtr = Builder.CreateGEP(StructAddrLV.Ptr, Idxs, Idxs + 2, "tmp"); // Now that we did an offset from the start of the struct, subtract off // the offset from BitStart. @@ -5435,9 +5445,9 @@ LValue Ptr = EmitLV(TREE_OPERAND(exp, 0)); assert(!Ptr.isBitfield() && "BIT_FIELD_REF operands cannot be bitfields!"); - return LValue(Builder.CreateGEP(Ptr.Ptr, - ConstantInt::get(Type::Int32Ty, 0), - ConstantInt::get(Type::Int32Ty, Idx), "tmp")); + Value *Idxs[2] = { ConstantInt::get(Type::Int32Ty, 0), + ConstantInt::get(Type::Int32Ty, Idx) }; + return LValue(Builder.CreateGEP(Ptr.Ptr, Idxs, Idxs + 2, "tmp")); } LValue TreeToLLVM::EmitLV_VIEW_CONVERT_EXPR(tree exp) { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits