aboutsummaryrefslogtreecommitdiff
path: root/gcc/haifa-sched.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2014-08-06 15:40:26 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2014-08-06 15:40:26 +0000
commitf50d71ec0f18c0ddf82c3127cab50e816e64c838 (patch)
tree91829d1585b1f5c879ae27113c00a1e222ecca95 /gcc/haifa-sched.c
parent9d6171dce1c59155448881139181fbe158fd3a60 (diff)
downloadgcc-f50d71ec0f18c0ddf82c3127cab50e816e64c838.zip
gcc-f50d71ec0f18c0ddf82c3127cab50e816e64c838.tar.gz
gcc-f50d71ec0f18c0ddf82c3127cab50e816e64c838.tar.bz2
re PR debug/61923 (-fcompare-debug errors while building Linux kernel.)
2014-08-06 Vladimir Makarov <vmakarov@redhat.com> PR debug/61923 * haifa-sched.c (advance_one_cycle): Fix dump. (schedule_block): Don't advance cycle if we are already at the beginning of the cycle. 2014-08-06 Vladimir Makarov <vmakarov@redhat.com> PR debug/61923 * gcc.target/i386/pr61923.c: New test. From-SVN: r213675
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r--gcc/haifa-sched.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index f93fe4c..fb15e0d 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -2970,7 +2970,7 @@ advance_one_cycle (void)
{
advance_state (curr_state);
if (sched_verbose >= 4)
- fprintf (sched_dump, ";;\tAdvanced a state.\n");
+ fprintf (sched_dump, ";;\tAdvance the current state.\n");
}
/* Update register pressure after scheduling INSN. */
@@ -6052,6 +6052,7 @@ schedule_block (basic_block *target_bb, state_t init_state)
modulo_insns_scheduled = 0;
ls.modulo_epilogue = false;
+ ls.first_cycle_insn_p = true;
/* Loop until all the insns in BB are scheduled. */
while ((*current_sched_info->schedule_more_p) ())
@@ -6122,7 +6123,6 @@ schedule_block (basic_block *target_bb, state_t init_state)
if (must_backtrack)
goto do_backtrack;
- ls.first_cycle_insn_p = true;
ls.shadows_only_p = false;
cycle_issued_insns = 0;
ls.can_issue_more = issue_rate;
@@ -6409,11 +6409,13 @@ schedule_block (basic_block *target_bb, state_t init_state)
break;
}
}
+ ls.first_cycle_insn_p = true;
}
if (ls.modulo_epilogue)
success = true;
end_schedule:
- advance_one_cycle ();
+ if (!ls.first_cycle_insn_p)
+ advance_one_cycle ();
perform_replacements_new_cycle ();
if (modulo_ii > 0)
{