re PR debug/42629 ("-fcompare-debug failure (length)" with "-O1 -fsched-pressure -fschedule-insns")

gcc/ChangeLog:
PR debug/42629
* haifa-sched.c (dying_use_p): Debug insns don't count.
gcc/testsuite/ChangeLog:
PR debug/42629
* gcc.dg/pr42629.c: New.

From-SVN: r155763
This commit is contained in:
Alexandre Oliva 2010-01-09 14:41:17 +00:00 committed by Alexandre Oliva
parent 5de8da9b68
commit bb956f3ea0
4 changed files with 39 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2010-01-09 Alexandre Oliva <aoliva@redhat.com>
PR debug/42629
* haifa-sched.c (dying_use_p): Debug insns don't count.
2010-01-09 Alexandre Oliva <aoliva@redhat.com>
PR middle-end/42363

View File

@ -766,7 +766,8 @@ dying_use_p (struct reg_use_data *use)
struct reg_use_data *next;
for (next = use->next_regno_use; next != use; next = next->next_regno_use)
if (QUEUE_INDEX (next->insn) != QUEUE_SCHEDULED)
if (NONDEBUG_INSN_P (next->insn)
&& QUEUE_INDEX (next->insn) != QUEUE_SCHEDULED)
return false;
return true;
}

View File

@ -1,3 +1,8 @@
2010-01-09 Alexandre Oliva <aoliva@redhat.com>
PR debug/42629
* gcc.dg/pr42629.c: New.
2010-01-09 Alexandre Oliva <aoliva@redhat.com>
PR middle-end/42363

View File

@ -0,0 +1,27 @@
/* This failed -fcompare-debug because register pressure computation
took debug insns into account. */
/* { dg-do compile } */
/* { dg-options "-O1 -fsched-pressure -fschedule-insns -fcompare-debug" } */
int lzo_adler32(int adler, char *buf)
{
int s1 = adler;
int s2 = adler;
s1 += buf[0];
s2 += s1;
s1 += buf[1];
s2 += s1;
s1 += buf[2];
s2 += s1;
s1 += buf[3];
s2 += s1;
s1 += buf[4];
s2 += s1;
s1 += buf[5];
s2 += s1;
s1 += buf[6];
s2 += s1;
s1 += buf[7];
s2 += s1;
return (s2 << 16) + s1;
}