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:
parent
6acc594827
commit
9824a520b2
4 changed files with 67 additions and 2 deletions
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
52
gcc/testsuite/gcc.dg/graphite/pr83277.c
Normal file
52
gcc/testsuite/gcc.dg/graphite/pr83277.c
Normal 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;
|
||||
}
|
Loading…
Add table
Reference in a new issue