diff options
author | Owen Anderson <resistor@mac.com> | 2007-07-31 20:18:28 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-07-31 20:18:28 +0000 |
commit | b95f9d565f51a431449a2ae60211aa0e07709c6c (patch) | |
tree | a8530dd5386b71f12ef3880f5ad32165f6d87311 | |
parent | c7d1114ade08821746f448a6b6e9507da807022d (diff) |
Fix a failure I accidentally caused in my last commit by mishandling the
removal of redundant phis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40650 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Scalar/GVN.cpp | 2 | ||||
-rw-r--r-- | test/Transforms/GVN/2007-07-31-RedundantPhi.ll | 22 |
2 files changed, 24 insertions, 0 deletions
diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp index 2dde2f9392..ff66250244 100644 --- a/lib/Transforms/Scalar/GVN.cpp +++ b/lib/Transforms/Scalar/GVN.cpp @@ -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 index 0000000000..a9ca71ac81 --- /dev/null +++ b/test/Transforms/GVN/2007-07-31-RedundantPhi.ll @@ -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 +} |