OSDN Git Service

gcc/ChangeLog:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Jan 2010 14:41:17 +0000 (14:41 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 9 Jan 2010 14:41:17 +0000 (14:41 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155763 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/haifa-sched.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr42629.c [new file with mode: 0644]

index 2e66d7e..e93c9f1 100644 (file)
@@ -1,5 +1,10 @@
 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
        * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
        * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
index de75286..0a85b6e 100644 (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;
 }
index 83535c0..4d62e32 100644 (file)
@@ -1,5 +1,10 @@
 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
        * gcc.dg/torture/pr42363.c: New.
 
diff --git a/gcc/testsuite/gcc.dg/pr42629.c b/gcc/testsuite/gcc.dg/pr42629.c
new file mode 100644 (file)
index 0000000..e95d29b
--- /dev/null
@@ -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;
+}