aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-04-30 11:41:37 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-04-30 11:41:37 -0700
commit0ca4f243d76173f60f9965bf5fb4e7a20f04a718 (patch)
tree98191cfd46745c78d00ce28a750ab4504b24b5eb
parentbaf05df0592f492bcc0e9359843576f724ff830f (diff)
downloadgcc-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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ifcvt.c13
2 files changed, 18 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 29912df..6d9e026 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-04-30 Richard Henderson <rth@cygnus.com>
+
+ * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
+ from the last insn in the sequence.
+
2000-04-30 Zack Weinberg <zack@wolery.cumb.org>
* cpplex.c (cpp_idcmp): New function.
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;