diff options
author | Richard Henderson <rth@cygnus.com> | 2000-04-30 11:41:37 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-04-30 11:41:37 -0700 |
commit | 0ca4f243d76173f60f9965bf5fb4e7a20f04a718 (patch) | |
tree | 98191cfd46745c78d00ce28a750ab4504b24b5eb /gcc/ifcvt.c | |
parent | baf05df0592f492bcc0e9359843576f724ff830f (diff) | |
download | gcc-0ca4f243d76173f60f9965bf5fb4e7a20f04a718.zip gcc-0ca4f243d76173f60f9965bf5fb4e7a20f04a718.tar.gz gcc-0ca4f243d76173f60f9965bf5fb4e7a20f04a718.tar.bz2 |
ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes from the last insn in the sequence.
* ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
from the last insn in the sequence.
From-SVN: r33555
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 33c1918..b831b3e 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1927,6 +1927,19 @@ dead_or_predicable (test_bb, merge_bb, other_bb, new_dest, reversep) if (head != NULL) { head = squeeze_notes (head, end); + if (GET_CODE (end) == NOTE + && (NOTE_LINE_NUMBER (end) == NOTE_INSN_BLOCK_END + || NOTE_LINE_NUMBER (end) == NOTE_INSN_BLOCK_BEG + || NOTE_LINE_NUMBER (end) == NOTE_INSN_LOOP_BEG + || NOTE_LINE_NUMBER (end) == NOTE_INSN_LOOP_END + || NOTE_LINE_NUMBER (end) == NOTE_INSN_LOOP_CONT + || NOTE_LINE_NUMBER (end) == NOTE_INSN_LOOP_VTOP)) + { + if (head == end) + return TRUE; + end = PREV_INSN (end); + } + reorder_insns (head, end, PREV_INSN (earliest)); } return TRUE; |