diff options
| author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-03-21 20:19:21 +0000 |
|---|---|---|
| committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-03-21 15:19:21 -0500 |
| commit | bca05d20b8ecbf1fe5191da25fd077e01a8d4a10 (patch) | |
| tree | e42e2f734c28162f0a326545e885574fa66bf024 /gcc/ifcvt.c | |
| parent | 37c7da7b70e2d53e1053463bbdb92fb153316ae1 (diff) | |
| download | gcc-bca05d20b8ecbf1fe5191da25fd077e01a8d4a10.zip gcc-bca05d20b8ecbf1fe5191da25fd077e01a8d4a10.tar.gz gcc-bca05d20b8ecbf1fe5191da25fd077e01a8d4a10.tar.bz2 | |
cse.c (find_comparison_args): Remove previous change.
* cse.c (find_comparison_args): Remove previous change.
* ifcvt.c (noce_process_if_block): When moving an insn, remove any
REG_EQUAL notes.
From-SVN: r40715
Diffstat (limited to 'gcc/ifcvt.c')
| -rw-r--r-- | gcc/ifcvt.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index ceb7d49..d21cb4d 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1563,9 +1563,17 @@ noce_process_if_block (test_bb, then_bb, else_bb, join_bb) that case don't do anything and let the code below delete INSN_A. */ if (insn_b && else_bb) { + rtx note; + if (else_bb && insn_b == else_bb->end) else_bb->end = PREV_INSN (insn_b); reorder_insns (insn_b, insn_b, PREV_INSN (if_info.cond_earliest)); + + /* If there was a REG_EQUAL note, delete it since it may have been + true due to this insn being after a jump. */ + if ((note = find_reg_note (insn_b, REG_EQUAL, NULL_RTX)) != 0) + remove_note (insn_b, note); + insn_b = NULL_RTX; } /* If we have "x = b; if (...) x = a;", and x has side-effects, then |
