summaryrefslogtreecommitdiffstats
path: root/gcc/ifcvt.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-30 18:41:37 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-30 18:41:37 +0000
commit80eab3702460927e3dfe05999378f43cbf250798 (patch)
tree98191cfd46745c78d00ce28a750ab4504b24b5eb /gcc/ifcvt.c
parentd5935ad6cde69b55b3af4f7db07ce3a7a2cfffa3 (diff)
downloadppe42-gcc-80eab3702460927e3dfe05999378f43cbf250798.tar.gz
ppe42-gcc-80eab3702460927e3dfe05999378f43cbf250798.zip
* ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
from the last insn in the sequence. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33555 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r--gcc/ifcvt.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 33c19183132..b831b3e14d2 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;
OpenPOWER on IntegriCloud