Revert 141203. InstCombine is looping on unit tests.
authorJim Grosbach <grosbach@apple.com>
Wed, 5 Oct 2011 20:44:29 +0000 (20:44 +0000)
committerJim Grosbach <grosbach@apple.com>
Wed, 5 Oct 2011 20:44:29 +0000 (20:44 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141209 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/InstCombine/InstructionCombining.cpp
test/Transforms/InstCombine/2010-11-01-lshr-mask.ll

index a302a46290e42ddbed51082952f88edd4dfe4e67..cee27ff5913b0d2e512b07abcce48126d420faa7 100644 (file)
@@ -2009,17 +2009,20 @@ bool InstCombiner::DoOneIteration(Function &F, unsigned Iteration) {
       ++NumCombined;
       // Should we replace the old instruction with a new one?
       if (Result != I) {
+        DEBUG(errs() << "IC: Old = " << *I << '\n'
+                     << "    New = " << *Result << '\n');
+
         if (!I->getDebugLoc().isUnknown())
           Result->setDebugLoc(I->getDebugLoc());
         // Everything uses the new instruction now.
         I->replaceAllUsesWith(Result);
 
-        // Move the name to the new instruction.
-        Result->takeName(I);
-
-        DEBUG(errs() << "IC: Old = " << *I << '\n'
-                     << "    New = " << *Result << '\n');
+        // Push the new instruction and any users onto the worklist.
+        Worklist.Add(Result);
+        Worklist.AddUsersToWorkList(*Result);
 
+        // Move the name to the new instruction first.
+        Result->takeName(I);
 
         // Insert the new instruction into the basic block...
         BasicBlock *InstParent = I->getParent();
@@ -2032,10 +2035,6 @@ bool InstCombiner::DoOneIteration(Function &F, unsigned Iteration) {
         InstParent->getInstList().insert(InsertPos, Result);
 
         EraseInstFromFunction(*I);
-
-        // Push the new instruction and any users onto the worklist.
-        Worklist.Add(Result);
-        Worklist.AddUsersToWorkList(*Result);
       } else {
 #ifndef NDEBUG
         DEBUG(errs() << "IC: Mod = " << OrigI << '\n'
index a2590b4eb85aba048013235f6b9e33db7569d355..441d5f9b0b6445fc7c2f4ad13c943c3a2bda0927 100644 (file)
@@ -5,8 +5,8 @@
 define i32 @main(i32 %argc) nounwind ssp {
 entry:
   %tmp3151 = trunc i32 %argc to i8
-; CHECK: %0 = shl i8 %tmp3151, 5
-; CHECK: and i8 %0, 64
+; CHECK: %tmp3162 = shl i8 %tmp3151, 5
+; CHECK: and i8 %tmp3162, 64
 ; CHECK-NOT: shl
 ; CHECK-NOT: shr
   %tmp3161 = or i8 %tmp3151, -17