Use Use::set rather than finding the operand number of the use
authorDuncan Sands <baldrick@free.fr>
Wed, 8 Feb 2012 14:10:53 +0000 (14:10 +0000)
committerDuncan Sands <baldrick@free.fr>
Wed, 8 Feb 2012 14:10:53 +0000 (14:10 +0000)
and setting that.

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

lib/Transforms/Scalar/GVN.cpp

index 654125342a4156c8ddcc113fcb457b22e654d39f..5b95f5b86fb3b8a2d097870549bcf7cba7978d44 100644 (file)
@@ -1900,12 +1900,9 @@ unsigned GVN::replaceAllDominatedUsesWith(Value *From, Value *To,
   unsigned Count = 0;
   for (Value::use_iterator UI = From->use_begin(), UE = From->use_end();
        UI != UE; ) {
-    Instruction *User = cast<Instruction>(*UI);
-    unsigned OpNum = UI.getOperandNo();
-    ++UI;
-
-    if (DT->dominates(Root, User->getParent())) {
-      User->setOperand(OpNum, To);
+    Use &U = (UI++).getUse();
+    if (DT->dominates(Root, cast<Instruction>(U.getUser())->getParent())) {
+      U.set(To);
       ++Count;
     }
   }