OSDN Git Service

PR target/19340
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 8 Nov 2005 06:21:51 +0000 (06:21 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 8 Nov 2005 06:21:51 +0000 (06:21 +0000)
* reg-stack.c (reg_to_stack): Update register liveness also
for flag_sched2_use_traces.

testsuite/

PR target/19340
* gcc.dg/pr19340.c: New test.

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

gcc/ChangeLog
gcc/reg-stack.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr19340.c [new file with mode: 0644]

index 6e45b9e..1e22fd3 100644 (file)
@@ -1,3 +1,9 @@
+2005-11-08  Uros Bizjak  <uros@kss-loka.si>
+
+       PR target/19340
+       * reg-stack.c (reg_to_stack): Update register liveness also
+       for flag_sched2_use_traces.
+
 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
 
        PR target/23704
index 34e2dd9..665311c 100644 (file)
@@ -3046,7 +3046,7 @@ reg_to_stack (FILE *file)
      Also need to rebuild life when superblock scheduling is done
      as it don't update liveness yet.  */
   if (!optimize
-      || (flag_sched2_use_superblocks
+      || ((flag_sched2_use_superblocks || flag_sched2_use_traces)
          && flag_schedule_insns_after_reload))
     {
       count_or_remove_death_notes (NULL, 1);
index 9b09e79..95040bc 100644 (file)
@@ -1,3 +1,8 @@
+2005-11-08  Uros Bizjak  <uros@kss-loka.si>
+
+       PR target/19340
+       * gcc.dg/pr19340.c: New test.
+
 2005-11-07  Ian Lance Taylor  <ian@airs.com>
 
        PR rtl-optimization/24683
@@ -5,7 +10,7 @@
 
 2005-11-07  Uros Bizjak  <uros@kss-loka.si>
 
-       * gcc.dg/vect/pr24225.c: Add cleanup-coverage-files.
+       * gcc.dg/pr24225.c: Add cleanup-coverage-files.
        * gcc.dg/vect/pr24300.c: Add cleanup-tree-dump.
 
 2005-11-07  Uros Bizjak  <uros@kss-loka.si>
diff --git a/gcc/testsuite/gcc.dg/pr19340.c b/gcc/testsuite/gcc.dg/pr19340.c
new file mode 100644 (file)
index 0000000..cac4b09
--- /dev/null
@@ -0,0 +1,26 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fschedule-insns2 -fsched2-use-traces" } */
+
+extern double f (double x);
+
+double g (int a)
+{
+  int b, c, d, e = 0;
+  double h;
+
+  for (d = 0; d < a; d++)
+    for (c = 0; c < a; c++)
+      b = 1;
+
+  h = (double) e / (double) a;
+
+  if (h)
+    {
+      h = 1.0 / h;
+      h = f (h);
+    }
+  else
+    h = 1.0;
+
+  return h;
+}