call scev analysis in scop-detection as in sese-to-poly

Programming / Compilers / GCC - spop [138bc75d-0d04-0410-961f-82ee72b054a4] - 1 October 2015 10:17 UTC

Before our rewrite of the scop detection, we used to not have a valid SESE region under hand, and so we used to do more ad-hoc analysis of data references by trying to prove that at all levels of a loop nest the data references would be still valid.

Now that we have a valid SESE region, we can call the scev analysis in the same way on the same computed loop nest in the scop-detection as in the sese-to-poly.

Next step will be to cache the data references analyzed in the scop detection and not compute the same info in sese-to-poly.

The patch fixes block-1.f90 that used to ICE on x86_64-linux when compiled with-m32. Patch passed bootstrap with BOOT_CFLAGS="-g -O2 -fgraphite-identity
-floop-nest-optimize" and check on x86_64-linux using ISL-0.15.

2015-09-28 Sebastian Pop Aditya Kumar

PR tree-optimization/67754
- graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call scev analysis on the same loop nest as analyze_drs_in_stmts.
- graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and renamed... (try_generate_gimple_bb): Call outermost_loop_in_sese. (analyze_drs_in_stmts): Same.
- sese.c (outermost_loop_in_sese): ...here.

443b5bd call scev analysis in scop-detection as in sese-to-poly
gcc/ChangeLog | 11 +++++++++
gcc/graphite-scop-detection.c | 49 +++++++++++++++++------------------------
gcc/graphite-sese-to-poly.c | 30 ++-----------------------
gcc/sese.c | 28 ++++++++++++++++++++++-
4 files changed, 60 insertions(+), 58 deletions(-)

Upstream: gcc.gnu.org


  • Share