diff options
author | Richard Biener <rguenther@suse.de> | 2019-02-06 11:18:33 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-02-06 11:18:33 +0000 |
commit | 124f4f57c463876ca5367834cfb7e36870cb39a1 (patch) | |
tree | 80c2564c887428fb97edbc5883ecd1644548ae39 /gcc/testsuite | |
parent | cfc30fd17588446c8c54c6e1e77dec2dc18ba0fb (diff) | |
download | gcc-124f4f57c463876ca5367834cfb7e36870cb39a1.zip gcc-124f4f57c463876ca5367834cfb7e36870cb39a1.tar.gz gcc-124f4f57c463876ca5367834cfb7e36870cb39a1.tar.bz2 |
re PR tree-optimization/89182 ([graphite] ICE in extract_affine, at graphite-sese-to-poly.c:280)
2019-02-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/89182
* graphite.h (cached_scalar_evolution_in_region): Declare.
* graphite.c (struct seir_cache_key): New.
(struct sese_scev_hash): Likewise.
(seir_cache): New global.
(cached_scalar_evolution_in_region): New function.
(graphite_transform_loops): Allocate and release seir_cache.
* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
cached_scalar_evolution_in_region.
* graphite-scop-detection.c (scop_detection::can_represent_loop):
Simplify.
(scop_detection::graphite_can_represent_expr: Use
cached_scalar_evolution_in_region.
(scop_detection::stmt_simple_for_scop_p): Likewise.
(find_params_in_bb): Likewise.
(gather_bbs::before_dom_children): Likewise.
* graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
(add_loop_constraints): Likewise.
* gfortran.dg/graphite/pr89182.f90: New testcase.
From-SVN: r268575
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/graphite/pr89182.f90 | 31 |
2 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e37a948..5763b9b5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-02-06 Richard Biener <rguenther@suse.de> + + PR tree-optimization/89182 + * gfortran.dg/graphite/pr89182.f90: New testcase. + 2019-02-06 Jakub Jelinek <jakub@redhat.com> PR c/89211 diff --git a/gcc/testsuite/gfortran.dg/graphite/pr89182.f90 b/gcc/testsuite/gfortran.dg/graphite/pr89182.f90 new file mode 100644 index 0000000..73ca735 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/graphite/pr89182.f90 @@ -0,0 +1,31 @@ +! { dg-do compile } +! { dg-options "-O3 -fgraphite-identity --param max-completely-peeled-insns=8" } + +MODULE hfx_contract_block + INTEGER, PARAMETER :: dp=8 +CONTAINS + SUBROUTINE contract_block(mb_max,mc_max,kbc,ks_bc) + REAL(KIND=dp) :: kbc(mb_max*mc_max), ks_bc + CALL block_1_2_1_2(kbc,ks_bc) + CALL block_1_2_1_3(kbc,ks_bc) + CALL block_1_2_1_3(kbc,ks_bc) + END SUBROUTINE contract_block + SUBROUTINE block_1_2_1_2(kbc,ks_bc) + REAL(KIND=dp) :: kbc(2*1), ks_bc + DO mc = 1,2 + DO mb = 1,2 + kbc((mc-1)*2+mb) = ks_bc + END DO + END DO + END SUBROUTINE block_1_2_1_2 + SUBROUTINE block_1_2_1_3(kbc,ks_bc) + REAL(KIND=dp) :: kbc(2*1), ks_bc + DO md = 1,3 + DO mc = 1,1 + DO mb = 1,2 + kbc((mc-1)*2+mb) = kbc((mc-1)*2+mb) - ks_bc + END DO + END DO + END DO + END SUBROUTINE block_1_2_1_3 +END MODULE hfx_contract_block |