mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/83435 (ICE in set_value_range, at tree-vrp.c:211)
2018-01-11 Richard Biener <rguenther@suse.de> PR tree-optimization/83435 * graphite.c (canonicalize_loop_form): Ignore fake loop exit edges. * graphite-scop-detection.c (scop_detection::get_sese): Likewise. * tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear. * gcc.dg/graphite/pr83435.c: New testcase. From-SVN: r256535
This commit is contained in:
parent
dc6401818b
commit
b0bd3e52c1
|
|
@ -1,3 +1,10 @@
|
||||||
|
2018-01-11 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/83435
|
||||||
|
* graphite.c (canonicalize_loop_form): Ignore fake loop exit edges.
|
||||||
|
* graphite-scop-detection.c (scop_detection::get_sese): Likewise.
|
||||||
|
* tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear.
|
||||||
|
|
||||||
2018-01-11 Richard Sandiford <richard.sandiford@linaro.org>
|
2018-01-11 Richard Sandiford <richard.sandiford@linaro.org>
|
||||||
Alan Hayward <alan.hayward@arm.com>
|
Alan Hayward <alan.hayward@arm.com>
|
||||||
David Sherwood <david.sherwood@arm.com>
|
David Sherwood <david.sherwood@arm.com>
|
||||||
|
|
|
||||||
|
|
@ -428,7 +428,7 @@ scop_detection::get_sese (loop_p loop)
|
||||||
|
|
||||||
edge scop_begin = loop_preheader_edge (loop);
|
edge scop_begin = loop_preheader_edge (loop);
|
||||||
edge scop_end = single_exit (loop);
|
edge scop_end = single_exit (loop);
|
||||||
if (!scop_end || (scop_end->flags & EDGE_COMPLEX))
|
if (!scop_end || (scop_end->flags & (EDGE_COMPLEX|EDGE_FAKE)))
|
||||||
return invalid_sese;
|
return invalid_sese;
|
||||||
/* Include the BB with the loop-closed SSA PHI nodes.
|
/* Include the BB with the loop-closed SSA PHI nodes.
|
||||||
canonicalize_loop_closed_ssa makes sure that is in proper shape. */
|
canonicalize_loop_closed_ssa makes sure that is in proper shape. */
|
||||||
|
|
|
||||||
|
|
@ -324,7 +324,7 @@ canonicalize_loop_form (void)
|
||||||
FOR_EACH_LOOP (loop, LI_FROM_INNERMOST)
|
FOR_EACH_LOOP (loop, LI_FROM_INNERMOST)
|
||||||
{
|
{
|
||||||
edge e = single_exit (loop);
|
edge e = single_exit (loop);
|
||||||
if (!e || (e->flags & EDGE_COMPLEX))
|
if (!e || (e->flags & (EDGE_COMPLEX|EDGE_FAKE)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
canonicalize_loop_closed_ssa (loop, e);
|
canonicalize_loop_closed_ssa (loop, e);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2018-01-11 Richard Biener <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/83435
|
||||||
|
* gcc.dg/graphite/pr83435.c: New testcase.
|
||||||
|
|
||||||
2018-01-11 Richard Sandiford <richard.sandiford@linaro.org>
|
2018-01-11 Richard Sandiford <richard.sandiford@linaro.org>
|
||||||
Alan Hayward <alan.hayward@arm.com>
|
Alan Hayward <alan.hayward@arm.com>
|
||||||
David Sherwood <david.sherwood@arm.com>
|
David Sherwood <david.sherwood@arm.com>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-O -ftree-parallelize-loops=2 -floop-parallelize-all" } */
|
||||||
|
|
||||||
|
int yj, ax;
|
||||||
|
|
||||||
|
void
|
||||||
|
gf (signed char mp)
|
||||||
|
{
|
||||||
|
int *dh = &yj;
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
signed char sb;
|
||||||
|
|
||||||
|
for (sb = 0; sb < 1; sb -= 8)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
mp &= mp <= sb;
|
||||||
|
if (mp == 0)
|
||||||
|
dh = &ax;
|
||||||
|
mp = 0;
|
||||||
|
*dh = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2786,6 +2786,8 @@ add_assert_info (vec<assert_info> &asserts,
|
||||||
assert_info info;
|
assert_info info;
|
||||||
info.comp_code = comp_code;
|
info.comp_code = comp_code;
|
||||||
info.name = name;
|
info.name = name;
|
||||||
|
if (TREE_OVERFLOW_P (val))
|
||||||
|
val = drop_tree_overflow (val);
|
||||||
info.val = val;
|
info.val = val;
|
||||||
info.expr = expr;
|
info.expr = expr;
|
||||||
asserts.safe_push (info);
|
asserts.safe_push (info);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue