mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
8f2252625a
commit
b920a04763
|
|
@ -1,3 +1,11 @@
|
||||||
|
2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
|
||||||
|
Sebastian Pop <s.pop@samsung.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
|
2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
|
||||||
Sebastian Pop <s.pop@samsung.com>
|
Sebastian Pop <s.pop@samsung.com>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -507,8 +507,8 @@ private:
|
||||||
/* Return the tree variable that corresponds to the given isl ast identifier
|
/* Return the tree variable that corresponds to the given isl ast identifier
|
||||||
expression (an isl_ast_expr of type isl_ast_expr_id).
|
expression (an isl_ast_expr of type isl_ast_expr_id).
|
||||||
|
|
||||||
FIXME: We should replace blind conversation of id's type with derivation
|
FIXME: We should replace blind conversion of id's type with derivation
|
||||||
of the optimal type when we get the corresponding isl support. Blindly
|
of the optimal type when we get the corresponding isl support. Blindly
|
||||||
converting type sizes may be problematic when we switch to smaller
|
converting type sizes may be problematic when we switch to smaller
|
||||||
types. */
|
types. */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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. */
|
/* Transforms LOOP to the canonical loop closed SSA form. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
@ -376,7 +385,9 @@ canonicalize_loop_closed_ssa (loop_p loop)
|
||||||
use_operand_p use_p;
|
use_operand_p use_p;
|
||||||
gphi *close_phi;
|
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;
|
continue;
|
||||||
|
|
||||||
close_phi = create_phi_node (NULL_TREE, close);
|
close_phi = create_phi_node (NULL_TREE, close);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
|
||||||
|
Sebastian Pop <s.pop@samsung.com>
|
||||||
|
|
||||||
|
* gcc.dg/graphite/pr68976.c: New test.
|
||||||
|
|
||||||
2016-01-21 Jakub Jelinek <jakub@redhat.com>
|
2016-01-21 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR middle-end/67653
|
PR middle-end/67653
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
/* { dg-options "-O2 -floop-nest-optimize" } */
|
||||||
|
|
||||||
|
int kw = -1, hv = -1, ju;
|
||||||
|
int mc[1];
|
||||||
|
void xx(void)
|
||||||
|
{
|
||||||
|
for (; kw; ++kw)
|
||||||
|
for (; hv; ++hv)
|
||||||
|
for (ju = 0; ju < 2; ++ju)
|
||||||
|
mc[kw+1] = mc[0];
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue