aboutsummaryrefslogtreecommitdiff
path: root/gcc/sched.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1993-08-09 12:37:23 -0700
committerJim Wilson <wilson@gcc.gnu.org>1993-08-09 12:37:23 -0700
commit211b330fd8f17c6be56de8048edb5ab0a1633220 (patch)
treec70cbdc01f8eabb3eda2a4c0ee930416052b278e /gcc/sched.c
parent256f27acc15d3048f82c0479b7df03f68d736cf1 (diff)
downloadgcc-211b330fd8f17c6be56de8048edb5ab0a1633220.zip
gcc-211b330fd8f17c6be56de8048edb5ab0a1633220.tar.gz
gcc-211b330fd8f17c6be56de8048edb5ab0a1633220.tar.bz2
(schedule_insns): Don't emit a NOTE at the end of the last basic block if...
(schedule_insns): Don't emit a NOTE at the end of the last basic block if that would put it between a JUMP_INSN and a BARRIER. From-SVN: r5121
Diffstat (limited to 'gcc/sched.c')
-rw-r--r--gcc/sched.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/gcc/sched.c b/gcc/sched.c
index 9da35d0..48b13ff 100644
--- a/gcc/sched.c
+++ b/gcc/sched.c
@@ -4497,9 +4497,17 @@ schedule_insns (dump_file)
/* Schedule each basic block, block by block. */
- if (NEXT_INSN (basic_block_end[n_basic_blocks-1]) == 0
- || (GET_CODE (basic_block_end[n_basic_blocks-1]) != NOTE
- && GET_CODE (basic_block_end[n_basic_blocks-1]) != CODE_LABEL))
+ /* ??? Add a NOTE after the last insn of the last basic block. It is not
+ known why this is done. */
+
+ insn = basic_block_end[n_basic_blocks-1];
+ if (NEXT_INSN (insn) == 0
+ || (GET_CODE (insn) != NOTE
+ && GET_CODE (insn) != CODE_LABEL
+ /* Don't emit a NOTE if it would end up between an unconditional
+ jump and a BARRIER. */
+ && ! (GET_CODE (insn) == JUMP_INSN
+ && GET_CODE (NEXT_INSN (insn)) == BARRIER)))
emit_note_after (NOTE_INSN_DELETED, basic_block_end[n_basic_blocks-1]);
for (b = 0; b < n_basic_blocks; b++)