diff options
author | Aditya Kumar <aditya.k7@samsung.com> | 2016-01-21 02:13:52 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2016-01-21 02:13:52 +0000 |
commit | b920a047635c09df188279c02af1499a77e630f7 (patch) | |
tree | 15f7c89c2d1f30f131ebeb04fae4637dee890f41 /gcc/graphite-scop-detection.c | |
parent | 8f2252625a841171aad0f7dda84f3811e03c7073 (diff) | |
download | gcc-b920a047635c09df188279c02af1499a77e630f7.zip gcc-b920a047635c09df188279c02af1499a77e630f7.tar.gz gcc-b920a047635c09df188279c02af1499a77e630f7.tar.bz2 |
fix PR68976: only add loop close phi for names defined in loop
* graphite-isl-ast-to-gimple.c: Fix comment.
* graphite-scop-detection.c (defined_in_loop_p): New.
(canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
names defined in loop.
gcc/testsuite
* gcc.dg/graphite/pr68976.c: New test.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232658
Diffstat (limited to 'gcc/graphite-scop-detection.c')
-rw-r--r-- | gcc/graphite-scop-detection.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c index 3f268a5..d026d4f 100644 --- a/gcc/graphite-scop-detection.c +++ b/gcc/graphite-scop-detection.c @@ -336,6 +336,15 @@ make_close_phi_nodes_unique (basic_block bb) } } +/* Return true when NAME is defined in LOOP. */ + +static bool +defined_in_loop_p (tree name, loop_p loop) +{ + gcc_assert (TREE_CODE (name) == SSA_NAME); + return loop == loop_containing_stmt (SSA_NAME_DEF_STMT (name)); +} + /* Transforms LOOP to the canonical loop closed SSA form. */ static void @@ -376,7 +385,9 @@ canonicalize_loop_closed_ssa (loop_p loop) use_operand_p use_p; gphi *close_phi; - if (TREE_CODE (arg) != SSA_NAME) + /* Only add close phi nodes for SSA_NAMEs defined in LOOP. */ + if (TREE_CODE (arg) != SSA_NAME + || !defined_in_loop_p (arg, loop)) continue; close_phi = create_phi_node (NULL_TREE, close); |