diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-10-06 09:27:28 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2006-10-06 09:27:28 +0200 |
commit | 9731a71c571699e497274dc343cbbfb43ea5b213 (patch) | |
tree | 0811968585b6f7322894c75019090cce932c2db8 /gcc/tree-loop-linear.c | |
parent | c1a46941d41c8f3de4b9eb2f4bb95eaa99fb7146 (diff) | |
download | gcc-9731a71c571699e497274dc343cbbfb43ea5b213.zip gcc-9731a71c571699e497274dc343cbbfb43ea5b213.tar.gz gcc-9731a71c571699e497274dc343cbbfb43ea5b213.tar.bz2 |
re PR tree-optimization/29290 (SPEC CPU2000 178.galgel ICE using -O3 -ftree-loop-linear)
PR tree-optimization/29290
* tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
multiple exits.
* gfortran.dg/loop_nest_1.f90: New test.
From-SVN: r117484
Diffstat (limited to 'gcc/tree-loop-linear.c')
-rw-r--r-- | gcc/tree-loop-linear.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/tree-loop-linear.c b/gcc/tree-loop-linear.c index e0f5bd2..2ef7eac 100644 --- a/gcc/tree-loop-linear.c +++ b/gcc/tree-loop-linear.c @@ -265,12 +265,12 @@ linear_transform_loops (struct loops *loops) { ... } - for (j = 0; j < 50; j++) + for (j = 0; j < 50; j++) { ... } } */ - if (!loop_nest || !loop_nest->inner) + if (!loop_nest || !loop_nest->inner || !loop_nest->single_exit) continue; VEC_truncate (tree, oldivs, 0); VEC_truncate (tree, invariants, 0); |