From 79d03cf81ba8c9c303a24e98e26ca0396355e0bd Mon Sep 17 00:00:00 2001 From: Sebastian Pop Date: Tue, 6 Apr 2010 21:00:12 +0000 Subject: Add extra checks for places assuming one argument loop close SSA form. 2010-04-01 Sebastian Pop * 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 --- gcc/graphite-sese-to-poly.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'gcc/graphite-sese-to-poly.c') diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 17fb5a2..4584fe9 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -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); -- cgit v1.1