re PR tree-optimization/83277 ([graphite] Wrong code w/ -O2 -floop-nest-optimize)

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

	PR tree-optimization/83277
	* graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
	to code-gen liveout vars.

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

From-SVN: r255424
This commit is contained in:
Richard Biener 2017-12-05 15:10:23 +00:00 committed by Richard Biener
parent 6acc594827
commit 9824a520b2
4 changed files with 67 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2017-12-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/83277
* graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
to code-gen liveout vars.
2017-12-05 Richard Sandiford <richard.sandiford@linaro.org>
* config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)

View file

@ -1137,8 +1137,10 @@ should_copy_to_new_region (gimple *stmt, sese_info_p region)
if (is_gimple_assign (stmt)
&& (lhs = gimple_assign_lhs (stmt))
&& TREE_CODE (lhs) == SSA_NAME
&& is_gimple_reg (lhs)
&& scev_analyzable_p (lhs, region->region))
&& scev_analyzable_p (lhs, region->region)
/* But to code-generate liveouts - liveout PHI generation is
in generic sese.c code that cannot do code generation. */
&& ! bitmap_bit_p (region->liveout, SSA_NAME_VERSION (lhs)))
return false;
return true;

View file

@ -1,3 +1,8 @@
2017-12-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/83277
* gcc.dg/graphite/pr83277.c: New testcase.
2017-12-05 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/83283

View file

@ -0,0 +1,52 @@
/* { dg-do run } */
/* { dg-options "-O2 -floop-nest-optimize" } */
int rk, si = 0;
int jr[2];
int
wv (signed char n8)
{
const int tw = 8;
int xq[tw];
int bj, pu = 0;
for (bj = 0; bj < tw; ++bj)
xq[bj] = 0;
bj = 0;
while (bj < 1)
{
int gs = n8 ^ 128;
if (gs != 0)
{
int u7[3];
while (bj < 2)
{
u7[bj] = 0;
++bj;
}
jr[0] = u7[0];
rk = xq[0];
pu = n8;
if (si != 0)
return si;
}
}
return pu;
}
int
main (void)
{
signed char ax = 1;
if (wv (ax) != ax)
__builtin_abort ();
return 0;
}