diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-01-31 05:13:34 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-01-31 05:13:34 +0000 |
commit | 7fb29e6397a619886134ed1e2840238e10682ef9 (patch) | |
tree | c6f8c0932c79628d280754aa2f1e0d0dc3be9b9b /gcc/haifa-sched.c | |
parent | 695d0c0821f1524d7cede851ddff72cfa36661fa (diff) | |
download | gcc-7fb29e6397a619886134ed1e2840238e10682ef9.tar.gz |
Reverted:
2011-01-25 Alexandre Oliva <aoliva@redhat.com>
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169429 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r-- | gcc/haifa-sched.c | 58 |
1 files changed, 6 insertions, 52 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 68499f12b1c..bd3b84c5c23 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -1900,30 +1900,8 @@ get_ebb_head_tail (basic_block beg, basic_block end, rtx *headp, rtx *tailp) beg_head = NEXT_INSN (beg_head); while (beg_head != beg_tail) - if (NOTE_P (beg_head)) + if (NOTE_P (beg_head) || BOUNDARY_DEBUG_INSN_P (beg_head)) beg_head = NEXT_INSN (beg_head); - else if (DEBUG_INSN_P (beg_head)) - { - rtx note, next; - - for (note = NEXT_INSN (beg_head); - note != beg_tail; - note = next) - { - next = NEXT_INSN (note); - if (NOTE_P (note)) - { - if (sched_verbose >= 9) - fprintf (sched_dump, "reorder %i\n", INSN_UID (note)); - - reorder_insns_nobb (note, note, PREV_INSN (beg_head)); - } - else if (!DEBUG_INSN_P (note)) - break; - } - - break; - } else break; @@ -1935,33 +1913,8 @@ get_ebb_head_tail (basic_block beg, basic_block end, rtx *headp, rtx *tailp) end_head = NEXT_INSN (end_head); while (end_head != end_tail) - if (NOTE_P (end_tail)) + if (NOTE_P (end_tail) || BOUNDARY_DEBUG_INSN_P (end_tail)) end_tail = PREV_INSN (end_tail); - else if (DEBUG_INSN_P (end_tail)) - { - rtx note, prev; - - for (note = PREV_INSN (end_tail); - note != end_head; - note = prev) - { - prev = PREV_INSN (note); - if (NOTE_P (note)) - { - if (sched_verbose >= 9) - fprintf (sched_dump, "reorder %i\n", INSN_UID (note)); - - reorder_insns_nobb (note, note, end_tail); - - if (end_tail == BB_END (end)) - df_insn_change_bb (note, NULL); - } - else if (!DEBUG_INSN_P (note)) - break; - } - - break; - } else break; @@ -1975,7 +1928,8 @@ no_real_insns_p (const_rtx head, const_rtx tail) { while (head != NEXT_INSN (tail)) { - if (!NOTE_P (head) && !LABEL_P (head)) + if (!NOTE_P (head) && !LABEL_P (head) + && !BOUNDARY_DEBUG_INSN_P (head)) return 0; head = NEXT_INSN (head); } @@ -2858,7 +2812,7 @@ schedule_block (basic_block *target_bb) last_scheduled_insn = prev_head; gcc_assert ((NOTE_P (last_scheduled_insn) - || DEBUG_INSN_P (last_scheduled_insn)) + || BOUNDARY_DEBUG_INSN_P (last_scheduled_insn)) && BLOCK_FOR_INSN (last_scheduled_insn) == *target_bb); /* Initialize INSN_QUEUE. Q_SIZE is the total number of insns in the @@ -3365,7 +3319,7 @@ set_priorities (rtx head, rtx tail) current_sched_info->sched_max_insns_priority; rtx prev_head; - if (head == tail && ! INSN_P (head)) + if (head == tail && (! INSN_P (head) || BOUNDARY_DEBUG_INSN_P (head))) gcc_unreachable (); n_insn = 0; |