aboutsummaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2011-01-25 22:27:51 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2011-01-25 22:27:51 +0000
commit9bdbdcef9a8c9615c7d7ccb69bc5110b3c04a78b (patch)
tree6a6de1f5b3d7fc3e205bef331cb55788bda819b7 /gcc/final.c
parentb28641995ca556027897488809a2c5e4a4408298 (diff)
downloadgcc-9bdbdcef9a8c9615c7d7ccb69bc5110b3c04a78b.zip
gcc-9bdbdcef9a8c9615c7d7ccb69bc5110b3c04a78b.tar.gz
gcc-9bdbdcef9a8c9615c7d7ccb69bc5110b3c04a78b.tar.bz2
re PR debug/45136 (-fcompare-debug failure with -Os -fschedule-insns)
PR debug/45136 PR debug/45130 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary debug insns. (no_real_insns_p, schedule_block, set_priorities): Drop special treatment of boundary debug insns. * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns. * sched-ebb.c (schedule_ebbs): Don't skip debug insns. * sched-int.h (DEBUG_INSN_SCHED_P): Remove. (BOUNDARY_DEBUG_INSN_P): Likewise. (SCHEDULE_DEBUG_INSN_P): Likewise. * sched-rgn.c (init_ready_list): Drop special treatment of boundary debug insns. * final.c (rest_of_clean-state): Clear notes' BB. From-SVN: r169260
Diffstat (limited to 'gcc/final.c')
-rw-r--r--gcc/final.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 09dec08..ceb7974 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -4402,7 +4402,11 @@ rest_of_clean_state (void)
if (LABEL_P (insn))
INSN_UID (insn) = CODE_LABEL_NUMBER (insn);
else
- INSN_UID (insn) = 0;
+ {
+ if (NOTE_P (insn))
+ set_block_for_insn (insn, NULL);
+ INSN_UID (insn) = 0;
+ }
}
}
@@ -4423,7 +4427,6 @@ rest_of_clean_state (void)
&& NOTE_KIND (insn) != NOTE_INSN_BLOCK_END
&& NOTE_KIND (insn) != NOTE_INSN_CFA_RESTORE_STATE)))
print_rtl_single (final_output, insn);
-
}
if (final_output)