Add extra checks for places assuming one argument loop close SSA form.

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.

From-SVN: r158025
This commit is contained in:
Sebastian Pop 2010-04-06 21:00:12 +00:00 committed by Sebastian Pop
parent a3b9e73ca3
commit 79d03cf81b
2 changed files with 31 additions and 0 deletions

View 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>

View 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);