diff options
author | Andrey Belevantsev <abel@gcc.gnu.org> | 2010-01-14 14:22:20 +0300 |
---|---|---|
committer | Andrey Belevantsev <abel@gcc.gnu.org> | 2010-01-14 14:22:20 +0300 |
commit | 65b659ff8ae470763e003887546bd7c5cb5d39a7 (patch) | |
tree | b6587a1669aa2daf63c3afd103696461b8fc66e3 | |
parent | c6486552090f07189b36075052a08069511f983c (diff) | |
download | gcc-65b659ff8ae470763e003887546bd7c5cb5d39a7.zip gcc-65b659ff8ae470763e003887546bd7c5cb5d39a7.tar.gz gcc-65b659ff8ae470763e003887546bd7c5cb5d39a7.tar.bz2 |
re PR rtl-optimization/42246 (ICE in init_seqno for 186.crafty with sel-sched)
PR rtl-optimization/42246
* sel-sched-ir.h (get_all_loop_exits): Include exits from inner
loops.
From-SVN: r155900
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/sel-sched-ir.h | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr42246-2.f | 21 |
4 files changed, 34 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b45aa5a..b9b1b32 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2010-01-14 Andrey Belevantsev <abel@ispras.ru> + PR rtl-optimization/42246 + * sel-sched-ir.h (get_all_loop_exits): Include exits from inner + loops. + +2010-01-14 Andrey Belevantsev <abel@ispras.ru> + * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of all successors is the same as number of successors in current region. diff --git a/gcc/sel-sched-ir.h b/gcc/sel-sched-ir.h index 0d8b0fc..b5121c0 100644 --- a/gcc/sel-sched-ir.h +++ b/gcc/sel-sched-ir.h @@ -1147,7 +1147,8 @@ get_all_loop_exits (basic_block bb) /* Traverse all loop headers. */ for (i = 0; VEC_iterate (edge, exits, i, e); i++) - if (in_current_region_p (e->dest)) + if (in_current_region_p (e->dest) + || inner_loop_header_p (e->dest)) { VEC(edge, heap) *next_exits = get_all_loop_exits (e->dest); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d6f013e..341c535 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2010-01-14 Alexander Monakov <amonakov@ispras.ru> + PR rtl-optimization/42246 + * gfortran.dg/pr42246-2.f: New. + +2010-01-14 Alexander Monakov <amonakov@ispras.ru> + PR rtl-optimization/42389 * gcc.dg/pr42389.c: New. diff --git a/gcc/testsuite/gfortran.dg/pr42246-2.f b/gcc/testsuite/gfortran.dg/pr42246-2.f new file mode 100644 index 0000000..885e3a4 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr42246-2.f @@ -0,0 +1,21 @@ +C PR rtl-optimization/42246 +C { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } +C { dg-options "-O2 -fselective-scheduling -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops" } + + subroutine distance(x,clo) + implicit real*8 (a-h,o-z) + dimension x(2,6),x1(2,6),clo(6) + do 60 i=1,2 + do 20 j=1,6 + x(i,j)=clo(j) + 20 continue + do 40 iq=1,6 + x1(i,iq)=0.0d0 + 40 continue + do 50 j=1,6 + x(i,j)=x1(i,j) + 50 continue + 60 continue + return + end + |