Fix a failure I accidentally caused in my last commit by mishandling the
authorOwen Anderson <resistor@mac.com>
Tue, 31 Jul 2007 20:18:28 +0000 (20:18 +0000)
committerOwen Anderson <resistor@mac.com>
Tue, 31 Jul 2007 20:18:28 +0000 (20:18 +0000)
removal of redundant phis.

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

lib/Transforms/Scalar/GVN.cpp
test/Transforms/GVN/2007-07-31-RedundantPhi.ll [new file with mode: 0644]

index 2dde2f9392063ee4dcfc8286ca6357b6182e5556..ff66250244e8cf25a9129ae0b7b48c7f4b40608e 100644 (file)
@@ -747,6 +747,8 @@ Value *GVN::GetValueForBlock(BasicBlock *BB, LoadInst* orig,
     PN->replaceAllUsesWith(first);
     PN->eraseFromParent();
     
+    Phis[BB] = first;
+    
     return first;
   }
 
diff --git a/test/Transforms/GVN/2007-07-31-RedundantPhi.ll b/test/Transforms/GVN/2007-07-31-RedundantPhi.ll
new file mode 100644 (file)
index 0000000..a9ca71a
--- /dev/null
@@ -0,0 +1,22 @@
+; RUN: llvm-as < %s | opt -gvn | llvm-dis | not grep {tmp701 =}
+
+@img_width = external global i16               ; <i16*> [#uses=2]
+
+define i32 @smpUMHEXBipredIntegerPelBlockMotionSearch(i16* %cur_pic, i16 signext  %ref, i32 %list, i32 %pic_pix_x, i32 %pic_pix_y, i32 %blocktype, i16 signext  %pred_mv_x1, i16 signext  %pred_mv_y1, i16 signext  %pred_mv_x2, i16 signext  %pred_mv_y2, i16* %mv_x, i16* %mv_y, i16* %s_mv_x, i16* %s_mv_y, i32 %search_range, i32 %min_mcost, i32 %lambda_factor) {
+cond_next143:          ; preds = %entry
+       store i16 0, i16* @img_width, align 2
+       br i1 false, label %cond_next449, label %cond_false434
+
+cond_false434:         ; preds = %cond_true415
+       br label %cond_next449
+
+cond_next449:          ; preds = %cond_false434, %cond_true415
+       br i1 false, label %cond_next698, label %cond_false470
+
+cond_false470:         ; preds = %cond_next449
+       br label %cond_next698
+
+cond_next698:          ; preds = %cond_true492
+       %tmp701 = load i16* @img_width, align 2         ; <i16> [#uses=0]
+       ret i32 0
+}