diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-04-06 21:00:12 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-04-06 21:00:12 +0000 |
commit | 79d03cf81ba8c9c303a24e98e26ca0396355e0bd (patch) | |
tree | 238626b7ec25666429bb40b1facbaeea01601d27 /gcc/graphite-sese-to-poly.c | |
parent | a3b9e73ca325765f7a9fa7b0a90083ce39f6f2dd (diff) | |
download | gcc-79d03cf81ba8c9c303a24e98e26ca0396355e0bd.zip gcc-79d03cf81ba8c9c303a24e98e26ca0396355e0bd.tar.gz gcc-79d03cf81ba8c9c303a24e98e26ca0396355e0bd.tar.bz2 |
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
Diffstat (limited to 'gcc/graphite-sese-to-poly.c')
-rw-r--r-- | gcc/graphite-sese-to-poly.c | 13 |
1 files changed, 13 insertions, 0 deletions
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); |