From 47095bfc99080f1a17942390e8815a07efcbf12c Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 9 May 2000 22:48:40 -0700 Subject: [PATCH] flow.c (find_basic_blocks_1): Do not delete the first bb_note we run across. * flow.c (find_basic_blocks_1): Do not delete the first bb_note we run across. (create_basic_block): Use reorder_insns to move an existing bb_note to the correct place. From-SVN: r33814 --- gcc/ChangeLog | 7 +++++++ gcc/flow.c | 13 +++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e91f0b2ed7e..ea8972bdb6e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2000-05-09 Richard Henderson + + * flow.c (find_basic_blocks_1): Do not delete the first + bb_note we run across. + (create_basic_block): Use reorder_insns to move an existing + bb_note to the correct place. + 2000-05-09 Richard Henderson * calls.c (expand_call): Increment currently_expanding_call diff --git a/gcc/flow.c b/gcc/flow.c index f5287802254..239c70f4d30 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -584,8 +584,8 @@ find_basic_blocks_1 (f) { if (bb_note == NULL_RTX) bb_note = insn; - - next = flow_delete_insn (insn); + else + next = flow_delete_insn (insn); } break; } @@ -780,13 +780,18 @@ create_basic_block (index, head, end, bb_note) { /* If we found an existing note, thread it back onto the chain. */ + rtx after; + if (GET_CODE (head) == CODE_LABEL) - add_insn_after (bb_note, head); + after = head; else { - add_insn_before (bb_note, head); + after = PREV_INSN (head); head = bb_note; } + + if (after != bb_note && NEXT_INSN (after) != bb_note) + reorder_insns (bb_note, bb_note, after); } else {