aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2013-05-24 20:59:59 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2013-05-24 20:59:59 +0000
commitcb5cb19486bbcd3669e4332b48e28e8d7b9e9218 (patch)
tree4964fa2f5455cd40bcb405fb147f48fab7db6321
parent9f57f76aae9ad3be8efb5c1200353261e2ef7f34 (diff)
downloadgcc-cb5cb19486bbcd3669e4332b48e28e8d7b9e9218.zip
gcc-cb5cb19486bbcd3669e4332b48e28e8d7b9e9218.tar.gz
gcc-cb5cb19486bbcd3669e4332b48e28e8d7b9e9218.tar.bz2
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/haifa-sched.c15
2 files changed, 12 insertions, 8 deletions
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 <steven@gcc.gnu.org>
+
+ PR debug/56950
+ * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
+
2013-05-24 Nathan Sidwell <nathan@codesourcery.com>
Sandra Loosemore <sandra@codesourcery.com>
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;
}
}