From: Alexandre Oliva Date: Sat, 9 Jan 2010 14:41:17 +0000 (+0000) Subject: re PR debug/42629 ("-fcompare-debug failure (length)" with "-O1 -fsched-pressure... X-Git-Tag: releases/gcc-4.5.0~1319 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb956f3ea05a1c9b59f21aa776da3f582c00d4e0;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2e66d7e72d84..e93c9f1ac223 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-01-09 Alexandre Oliva + + PR debug/42629 + * haifa-sched.c (dying_use_p): Debug insns don't count. + 2010-01-09 Alexandre Oliva PR middle-end/42363 diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index de75286ef282..0a85b6ee9fa8 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -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; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 83535c06b0e3..4d62e328962f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-01-09 Alexandre Oliva + + PR debug/42629 + * gcc.dg/pr42629.c: New. + 2010-01-09 Alexandre Oliva PR middle-end/42363 diff --git a/gcc/testsuite/gcc.dg/pr42629.c b/gcc/testsuite/gcc.dg/pr42629.c new file mode 100644 index 000000000000..e95d29b544e6 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr42629.c @@ -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; +}