eliminate use of TargetData::getIndexedOffset that takes a vector
authorChris Lattner <sabre@nondot.org>
Sat, 10 Feb 2007 20:35:22 +0000 (20:35 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 10 Feb 2007 20:35:22 +0000 (20:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34163 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/BasicAliasAnalysis.cpp
lib/ExecutionEngine/ExecutionEngine.cpp

index e6b81be17204c1bb942c9b4b71360012d2a7b3c5..e65c173bd22ab6aeb6a2cf3c025214e2596215ad 100644 (file)
@@ -436,7 +436,9 @@ BasicAliasAnalysis::alias(const Value *V1, unsigned V1Size,
                 GEPOperands[i] =
                   Constant::getNullValue(GEPOperands[i]->getType());
             int64_t Offset =
-              getTargetData().getIndexedOffset(BasePtr->getType(), GEPOperands);
+              getTargetData().getIndexedOffset(BasePtr->getType(),
+                                               &GEPOperands[0],
+                                               GEPOperands.size());
 
             if (Offset >= (int64_t)V2Size || Offset <= -(int64_t)V1Size)
               return NoAlias;
@@ -617,11 +619,13 @@ BasicAliasAnalysis::CheckGEPInstructions(
           // Okay, now get the offset.  This is the relative offset for the full
           // instruction.
           const TargetData &TD = getTargetData();
-          int64_t Offset1 = TD.getIndexedOffset(GEPPointerTy, GEP1Ops);
+          int64_t Offset1 = TD.getIndexedOffset(GEPPointerTy, &GEP1Ops[0],
+                                                GEP1Ops.size());
 
           // Now crop off any constants from the end...
           GEP1Ops.resize(MinOperands);
-          int64_t Offset2 = TD.getIndexedOffset(GEPPointerTy, GEP1Ops);
+          int64_t Offset2 = TD.getIndexedOffset(GEPPointerTy, &GEP1Ops[0],
+                                                GEP1Ops.size());
 
           // If the tail provided a bit enough offset, return noalias!
           if ((uint64_t)(Offset2-Offset1) >= SizeMax)
@@ -731,8 +735,10 @@ BasicAliasAnalysis::CheckGEPInstructions(
   }
 
   if (GEPPointerTy->getElementType()->isSized()) {
-    int64_t Offset1 = getTargetData().getIndexedOffset(GEPPointerTy, GEP1Ops);
-    int64_t Offset2 = getTargetData().getIndexedOffset(GEPPointerTy, GEP2Ops);
+    int64_t Offset1 =
+      getTargetData().getIndexedOffset(GEPPointerTy,&GEP1Ops[0],GEP1Ops.size());
+    int64_t Offset2 = 
+      getTargetData().getIndexedOffset(GEPPointerTy,&GEP2Ops[0],GEP2Ops.size());
     assert(Offset1<Offset2 && "There is at least one different constant here!");
 
     if ((uint64_t)(Offset2-Offset1) >= SizeMax) {
index 6878f89fffb95b58908fb0d564b94fd76c7c8b77..28b515e3faf20bfadce3eb001060be3377a656b2 100644 (file)
@@ -334,9 +334,10 @@ GenericValue ExecutionEngine::getConstantValue(const Constant *C) {
     case Instruction::GetElementPtr: {
       // Compute the index 
       Result = getConstantValue(CE->getOperand(0));
-      std::vector<Value*> Indexes(CE->op_begin()+1, CE->op_end());
+      SmallVector<Value*, 8> Indices(CE->op_begin()+1, CE->op_end());
       uint64_t Offset =
-        TD->getIndexedOffset(CE->getOperand(0)->getType(), Indexes);
+        TD->getIndexedOffset(CE->getOperand(0)->getType(),
+                             &Indices[0], Indices.size());
 
       if (getTargetData()->getPointerSize() == 4)
         Result.Int32Val += Offset;