[llvm-commits] [llvm-gcc-4.0] r41698 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp

David Greene greened at obbligato.org
Tue Sep 4 09:14:57 PDT 2007


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) {





More information about the llvm-commits mailing list