https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71351
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |spop at gcc dot gnu.org
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
Also ICEs with -fgraphite-identity.
The issue seems to be that ISL creates a new loop guard but the loop has a
loop-close PHI node and we fail to generate/know the value to use on the
edge that skips the loop. The condition we try to insert is _19 > 0
(that's trivially true by means of a dominating condition).
Not sure how this is supposed to work for reductions when the orginal loops
guard is not in the SESE region. That guard looks like
_19 = *nc_18(D);
if (_19 <= 0)
...
so the BB is rejected because _19 = *nc_18(D) isn't a valid stmt. So for this
case it might help if we'd split that block...
Anyway, it looks like we have to fail code generation here somehow... (no good
idea how).