summaryrefslogtreecommitdiff
path: root/gcc/graphite-isl-ast-to-gimple.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2017-03-24 12:16:43 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2017-03-24 12:16:43 +0000
commit829d561487e272a6f6be3b3ffa13acb973208247 (patch)
treed4bb91faadd1dfb46e6ffaef3ec45a7a2dc4177d /gcc/graphite-isl-ast-to-gimple.c
parente87fd12ed11f9630f4fa5ed5143b5c90297349ff (diff)
downloadgcc-829d561487e272a6f6be3b3ffa13acb973208247.tar.gz
2017-03-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/80167 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs properly. (translate_isl_ast_to_gimple::get_rename): Likewise. * gcc.dg/graphite/pr80167.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246438 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-isl-ast-to-gimple.c')
-rw-r--r--gcc/graphite-isl-ast-to-gimple.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/graphite-isl-ast-to-gimple.c b/gcc/graphite-isl-ast-to-gimple.c
index 3f082da7699..54d07592d2d 100644
--- a/gcc/graphite-isl-ast-to-gimple.c
+++ b/gcc/graphite-isl-ast-to-gimple.c
@@ -1123,6 +1123,9 @@ bool translate_isl_ast_to_gimple::
is_valid_rename (tree rename, basic_block def_bb, basic_block use_bb,
phi_node_kind phi_kind, tree old_name, basic_block old_bb) const
{
+ if (SSA_NAME_IS_DEFAULT_DEF (rename))
+ return true;
+
/* The def of the rename must either dominate the uses or come from a
back-edge. Also the def must respect the loop closed ssa form. */
if (!is_loop_closed_ssa_use (use_bb, rename))
@@ -1178,6 +1181,7 @@ get_rename (basic_block new_bb, tree old_name, basic_block old_bb,
basic_block bb = gimple_bb (SSA_NAME_DEF_STMT (rename));
if (is_valid_rename (rename, bb, new_bb, phi_kind, old_name, old_bb)
&& (phi_kind == close_phi
+ || ! bb
|| flow_bb_inside_loop_p (bb->loop_father, new_bb)))
return rename;
return NULL_TREE;