OSDN Git Service

Add extra checks for places assuming one argument loop close SSA form.
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Apr 2010 21:00:12 +0000 (21:00 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 00:47:17 +0000 (09:47 +0900)
2010-04-01  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
gimple_phi_num_args of the loop close SSA phi node is equal to 1.
(detect_commutative_reduction): Same.

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

gcc/ChangeLog.graphite
gcc/graphite-sese-to-poly.c

index 6ce22cb..09c9f9d 100644 (file)
@@ -1,3 +1,21 @@
+2010-04-02  Sebastian Pop  <sebastian.pop@amd.com>
+
+       Reverted this commit: as at this point the loop closed SSA form
+       is under a canonical form respecting the single argument condition.
+       * graphite-sese-to-poly.c (scalar_close_phi_node_p): Loop
+       close phi nodes may have more than one argument.
+
+2010-04-01  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
+       gimple_phi_num_args of the loop close SSA phi node is equal to 1.
+       (detect_commutative_reduction): Same.
+
+2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-sese-to-poly.c (scalar_close_phi_node_p): Loop
+       close phi nodes may have more than one argument.
+
 2010-03-30  Richard Guenther  <rguenther@suse.de>
            Zdenek Dvorak  <ook@ucw.cz>
            Sebastian Pop  <sebastian.pop@amd.com>
index 17fb5a2..4584fe9 100644 (file)
@@ -2183,6 +2183,9 @@ scalar_close_phi_node_p (gimple phi)
       || !is_gimple_reg (gimple_phi_result (phi)))
     return false;
 
+  /* Note that loop close phi nodes should have a single argument
+     because we translated the representation into a canonical form
+     before Graphite: see canonicalize_loop_closed_ssa_form.  */
   return (gimple_phi_num_args (phi) == 1);
 }
 
@@ -2200,6 +2203,11 @@ rewrite_close_phi_out_of_ssa (gimple_stmt_iterator *psi)
   gimple stmt = gimple_build_assign (res, zero_dim_array);
   tree arg = gimple_phi_arg_def (phi, 0);
 
+  /* Note that loop close phi nodes should have a single argument
+     because we translated the representation into a canonical form
+     before Graphite: see canonicalize_loop_closed_ssa_form.  */
+  gcc_assert (gimple_phi_num_args (phi) == 1);
+
   if (TREE_CODE (arg) == SSA_NAME
       && !SSA_NAME_IS_DEFAULT_DEF (arg))
     insert_out_of_ssa_copy (zero_dim_array, arg);
@@ -2665,6 +2673,11 @@ detect_commutative_reduction (gimple stmt, VEC (gimple, heap) **in,
       if (TREE_CODE (arg) != SSA_NAME)
        return NULL;
 
+      /* Note that loop close phi nodes should have a single argument
+        because we translated the representation into a canonical form
+        before Graphite: see canonicalize_loop_closed_ssa_form.  */
+      gcc_assert (gimple_phi_num_args (stmt) == 1);
+
       def = SSA_NAME_DEF_STMT (arg);
       loop_phi = detect_commutative_reduction (def, in, out);