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
This commit is contained in:
Vladimir Makarov 2014-08-06 15:40:26 +00:00 committed by Vladimir Makarov
parent 9d6171dce1
commit f50d71ec0f
4 changed files with 53 additions and 3 deletions

View File

@ -1,3 +1,10 @@
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 Martin Jambor <mjambor@suse.cz>
PR ipa/61393

View File

@ -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)
{

View File

@ -1,3 +1,8 @@
2014-08-06 Vladimir Makarov <vmakarov@redhat.com>
PR debug/61923
* gcc.target/i386/pr61923.c: New test.
2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
* gcc.target/aarch64/vdup_n_2.c: New test.

View File

@ -0,0 +1,36 @@
/* PR debug/61923 */
/* { dg-do compile } */
/* { dg-options "-O2 -fcompare-debug" } */
typedef struct
{
struct
{
struct
{
char head;
} tickets;
};
} arch_spinlock_t;
struct ext4_map_blocks
{
int m_lblk;
int m_len;
int m_flags;
};
int ext4_da_map_blocks_ei_0;
void fn1 (int p1, struct ext4_map_blocks *p2)
{
int ret;
if (p2->m_flags)
{
ext4_da_map_blocks_ei_0++;
arch_spinlock_t *lock;
switch (sizeof *&lock->tickets.head)
case 1:
asm("" : "+m"(*&lock->tickets.head) : ""(0));
__asm__("");
ret = 0;
}
fn2 (p2->m_lblk, p2->m_len);
}