re PR tree-optimization/83238 ([graphite] ICE in graphite_can_represent_scev, at graphite-scop-detection.c:971)

2017-12-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/83238
	* graphite-scop-detection.c (scop_detection::merge_sese): Make
	code match comment, rejecting invalid SESE regions.

	* gcc.dg/graphite/pr83238.c: New testcase.

From-SVN: r255375
This commit is contained in:
Richard Biener 2017-12-04 08:26:18 +00:00 committed by Richard Biener
parent b6ecbf313b
commit 5d66d3f151
4 changed files with 51 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2017-12-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/83238
* graphite-scop-detection.c (scop_detection::merge_sese): Make
code match comment, rejecting invalid SESE regions.
2017-12-03 John David Anglin <danglin@gcc.gnu.org>
* config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,

View File

@ -570,8 +570,7 @@ scop_detection::merge_sese (sese_l first, sese_l second) const
which post-dominates dom, until it stabilizes. Also, ENTRY->SRC and
EXIT->DEST should be in the same loop nest. */
if (!dominated_by_p (CDI_DOMINATORS, pdom, dom)
|| loop_depth (entry->src->loop_father)
!= loop_depth (exit->dest->loop_father))
|| entry->src->loop_father != exit->dest->loop_father)
return invalid_sese;
/* For now we just bail out when there is a loop exit in the region

View File

@ -1,3 +1,8 @@
2017-12-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/83238
* gcc.dg/graphite/pr83238.c: New testcase.
2017-12-04 Tom de Vries <tom@codesourcery.com>
* gcc.dg/pr82875.c: Require effective target alloca.

View File

@ -0,0 +1,39 @@
/* { dg-do compile } */
/* { dg-options "-O2 -floop-parallelize-all" } */
void
vw (int *dk, int zd, int jb)
{
int sq;
int *kv = &sq;
for (sq = 0; sq < 2; ++sq)
{
int u1;
for (u1 = 0; u1 < 5; ++u1)
if (zd == 0)
return;
}
for (;;)
{
++zd;
if (zd == 0)
while (jb != 0)
kv = &jb;
while (*dk < 1)
{
for (jb = 0; jb < 2; ++jb)
{
}
++*dk;
}
for (*kv = 0; *kv < 2; ++*kv)
for (*dk = 0; *dk < 2; ++*dk)
{
}
}
}