[Bug tree-optimization/54967] [4.8 Regression] ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:55
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Oct 19 12:51:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54967
--- Comment #7 from Jan Hubicka <hubicka at gcc dot gnu.org> 2012-10-19 12:50:57 UTC ---
OK,
the problem is that unloop is shuffling a basic block out of the outer loop:
DO m=1,6
after unrolling the inner loop:
DO j=1,2
12 times.
So here are several problems
1) I need to work out what to do when unloop moves basic blocks out of the loop
and why it happens in this case
2) array bound is based on array access
n_29 = n_5 + 1;
_45 = (integer(kind=8)) n_29;
_58 = _45 + -1;
c_map_mat[_58] = m_1;
and it is 12 instead of 2 because we lose track of the fact that the array is 2
dimensional with known bounds.
Somehow we should keep track of this.
3) tree-ssa-loop-niter ought to take into account known bounds on IV variables
of the outer loop when computing the inner loop.
Honza
More information about the Gcc-bugs
mailing list