]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Add testcase for PR42729 and fix handling of gimple_debug info.
authorSebastian Pop <sebastian.pop@amd.com>
Wed, 11 Aug 2010 20:28:15 +0000 (20:28 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Wed, 11 Aug 2010 20:28:15 +0000 (20:28 +0000)
2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

* sese.c (rename_uses): Handl unconditionally gimple_debug statements.

* gcc.dg/graphite/pr42729.c: New.

From-SVN: r163146

gcc/ChangeLog
gcc/ChangeLog.graphite
gcc/sese.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/graphite/pr42729.c [new file with mode: 0644]

index c40f769afd0c4d5cad25c2b9e602e52e99b6d6aa..9745f280b2ffd097592675543f42ee9304ccb5ac 100644 (file)
@@ -1,3 +1,7 @@
+2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
+
 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
index 965ed2530c099fe88934cf81d200faf9a3436953..37bedfb171bbb940c5a3b74f66aaa16a7c5e9ed2 100644 (file)
@@ -1,3 +1,9 @@
+2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
+
+       * gcc.dg/graphite/pr42729.c: New.
+
 2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
index 583504de2d701510c2fe758397506edb94f0b15e..9dbd76f85ea512f1d43f3f39f3ca4240927a4c66 100644 (file)
@@ -480,6 +480,16 @@ rename_uses (gimple copy, htab_t rename_map, gimple_stmt_iterator *gsi_tgt,
   use_operand_p use_p;
   ssa_op_iter op_iter;
 
+  if (is_gimple_debug (copy))
+    {
+      if (gimple_debug_bind_p (copy))
+       gimple_debug_bind_reset_value (copy);
+      else
+       gcc_unreachable ();
+
+      return;
+    }
+
   FOR_EACH_SSA_USE_OPERAND (use_p, copy, op_iter, SSA_OP_ALL_USES)
     {
       tree old_name = USE_FROM_PTR (use_p);
@@ -501,19 +511,7 @@ rename_uses (gimple copy, htab_t rename_map, gimple_stmt_iterator *gsi_tgt,
              || (TREE_CODE (new_expr) != SSA_NAME
                  && is_gimple_reg (old_name)))
            {
-             tree var;
-
-             if (is_gimple_debug (copy))
-               {
-                 if (gimple_debug_bind_p (copy))
-                   gimple_debug_bind_reset_value (copy);
-                 else
-                   gcc_unreachable ();
-
-                 break;
-               }
-
-             var = create_tmp_var (type_old_name, "var");
+             tree var = create_tmp_var (type_old_name, "var");
 
              if (type_old_name != type_new_expr)
                new_expr = fold_convert (type_old_name, new_expr);
index e74bbbe10833d95470caa381f925cfb5afbca5d1..a20c841b06a97ce60cc0b4485086799c33a14b80 100644 (file)
@@ -1,3 +1,7 @@
+2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * gcc.dg/graphite/pr42729.c: New.
+
 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
 
        * gfortran.dg/graphite/id-20.f: New.
diff --git a/gcc/testsuite/gcc.dg/graphite/pr42729.c b/gcc/testsuite/gcc.dg/graphite/pr42729.c
new file mode 100644 (file)
index 0000000..3a0e901
--- /dev/null
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O1 -fgraphite-identity -fcompare-debug" } */
+
+int A[10];
+int *foo ()
+{
+  int *p1, *p2, i;
+  for (i = 0; i < 10; i++)
+  {
+    p1 = &A[i];
+    *p1 = 0;
+  }
+  p2 = p1;
+  return p2;
+}