diff options
author | Aditya Kumar <aditya.k7@samsung.com> | 2015-10-21 21:18:27 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2015-10-21 21:18:27 +0000 |
commit | 78fd2726cafeb9e0cf377e5fb2102d09d91779d5 (patch) | |
tree | edc739b54786c480775bcdd4ce45e801f6224ec9 /gcc/sese.h | |
parent | 8b76e7fef8246b7bb6f209b8ce0768d437b7b4a0 (diff) | |
download | gcc-78fd2726cafeb9e0cf377e5fb2102d09d91779d5.zip gcc-78fd2726cafeb9e0cf377e5fb2102d09d91779d5.tar.gz gcc-78fd2726cafeb9e0cf377e5fb2102d09d91779d5.tar.bz2 |
a scalar depending on vdefs in the current region is not invariant
When a scalar is defined in function of an array reference in the current scop,
it does variate. Graphite cannot represent the condition in scop-11.c, as a[*]
variates in the current region, and it is not an affine condition:
for (j = 0; j <= 20; j++)
a[j] = b + i;
if (a[12] == 23)
b = 3;
else
b = 1;
for (j = 0; j <= 20; j++)
a[j] = b + i;
* graphite-scop-detection.c (parameter_index_in_region): Update call to
invariant_in_sese_p_rec.
* graphite-sese-to-poly.c (extract_affine): Same.
* sese.c (invariant_in_sese_p_rec): Pass in an extra parameter has_vdefs.
(scalar_evolution_in_region): Return chrec_dont_know when the scalar variable
depends on virtual definitions in the current region.
* sese.h (invariant_in_sese_p_rec): Update declaration.
testsuite/
* gcc.dg/graphite/scop-11.c: Update pattern.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r229151
Diffstat (limited to 'gcc/sese.h')
-rw-r--r-- | gcc/sese.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -84,7 +84,7 @@ extern edge copy_bb_and_scalar_dependences (basic_block, sese_info_p, edge, vec<tree> , bool *); extern struct loop *outermost_loop_in_sese (sese_l &, basic_block); extern tree scalar_evolution_in_region (sese_l &, loop_p, tree); -extern bool invariant_in_sese_p_rec (tree, sese_l &); +extern bool invariant_in_sese_p_rec (tree, sese_l &, bool *); /* Check that SESE contains LOOP. */ |