Change code to not use the copyOperands method added to User. It's now
authorChris Lattner <sabre@nondot.org>
Thu, 22 Aug 2002 15:57:58 +0000 (15:57 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 22 Aug 2002 15:57:58 +0000 (15:57 +0000)
more efficient to boot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3453 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9AsmPrinter.cpp

index 680e7d20b52b1e34d6936819356ab13878347722..f3de79d10164ad3fe13e2e95ba1ae1da97e42c37 100644 (file)
@@ -191,19 +191,21 @@ public:
   //
   std::string ConstantExprToString(const ConstantExpr* CE,
                                    const TargetMachine& target) {
-    std::string S("");
+    std::string S;
 
     switch(CE->getOpcode()) {
     case Instruction::GetElementPtr:
       {
         const Value* ptrVal = CE->getOperand(0);
         valToExprString(ptrVal, target, S);
-        std::vector<Value*> idxVec = CE->copyOperands();
-        idxVec.erase(idxVec.begin());
-        uint64_t byteOffset = target.DataLayout.getIndexedOffset(ptrVal->getType(),
-                                                                 idxVec);
-        uint64_t eltSize = target.DataLayout.getTypeSize(
-                                                         cast<PointerType>(ptrVal->getType())->getElementType());
+        std::vector<Value*> idxVec(CE->op_begin()+1, CE->op_end());
+        uint64_t byteOffset =
+          target.DataLayout.getIndexedOffset(ptrVal->getType(), idxVec);
+
+        const Type *PtrElTy =
+          cast<PointerType>(ptrVal->getType())->getElementType();
+        uint64_t eltSize = target.DataLayout.getTypeSize(PtrElTy);
+
         S += " + " + utostr(byteOffset / eltSize);
         break;
       }