From cb5cb19486bbcd3669e4332b48e28e8d7b9e9218 Mon Sep 17 00:00:00 2001 From: Steven Bosscher Date: Fri, 24 May 2013 20:59:59 +0000 Subject: re PR debug/56950 (compare-debug failure for gcc.dg/pr41345.c with fschedule-insns) PR debug/56950 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs. From-SVN: r199316 --- gcc/ChangeLog | 5 +++++ gcc/haifa-sched.c | 15 +++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1ef26d9..c910f93 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-05-24 Steven Bosscher + + PR debug/56950 + * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs. + 2013-05-24 Nathan Sidwell Sandra Loosemore diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 15ddedb..61eaaef 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -7435,20 +7435,19 @@ find_fallthru_edge_from (basic_block pred) static void sched_extend_bb (void) { - rtx insn; - /* The following is done to keep current_sched_info->next_tail non null. */ - insn = BB_END (EXIT_BLOCK_PTR->prev_bb); - if (NEXT_INSN (insn) == 0 + rtx end = BB_END (EXIT_BLOCK_PTR->prev_bb); + rtx insn = DEBUG_INSN_P (end) ? prev_nondebug_insn (end) : end; + if (NEXT_INSN (end) == 0 || (!NOTE_P (insn) && !LABEL_P (insn) /* Don't emit a NOTE if it would end up before a BARRIER. */ - && !BARRIER_P (NEXT_INSN (insn)))) + && !BARRIER_P (NEXT_INSN (end)))) { - rtx note = emit_note_after (NOTE_INSN_DELETED, insn); - /* Make insn appear outside BB. */ + rtx note = emit_note_after (NOTE_INSN_DELETED, end); + /* Make note appear outside BB. */ set_block_for_insn (note, NULL); - BB_END (EXIT_BLOCK_PTR->prev_bb) = insn; + BB_END (EXIT_BLOCK_PTR->prev_bb) = end; } } -- cgit v1.1