[Bug tree-optimization/69675] [6/7 Regression] [graphite] ICE: verify_ssa failed (definition in block 42 does not dominate use in block 34)

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Feb 9 11:49:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69675

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Yeah, seems to be gone with ISL 0.18 here as well... (but with 0.16.1 I can
still reproduce it).  ISL 0.18 doesn't do anything to the loop.  ISL 0.16.1
just did some IV transforms it seems:

[scheduler] original ast:
for (int c0 = 0; c0 <= -P_14; c0 += 1)
  for (int c1 = 0; c1 <= 3; c1 += 1) {
    S_5(c0, c1);
    if (c1 <= 2)
      S_6(c0, c1);
  }

[scheduler] AST generated by isl:
for (int c0 = 0; c0 <= -P_14; c0 += 1)
  for (int c1 = 3 * c0; c1 <= 3 * c0 + 3; c1 += 1) {
    S_5(c0, -3 * c0 + c1);
    if (3 * c0 + 2 >= c1)
      S_6(c0, -3 * c0 + c1);
  }

and with ISL 0.18 we have

[scheduler] isl optimized schedule is identical to the original schedule.
for (int c0 = 0; c0 <= -P_14; c0 += 1)
  for (int c1 = 0; c1 <= 3; c1 += 1) {
    S_5(c0, c1);
    if (c1 <= 2)
      S_6(c0, c1);
  }

and eventually code generation is not happy with the changed form
(-fgraphite-identity is fine).

Sebastian, any comment?  I think we could still for example require current ISL
for GCC 6 (0.18 or maybe 0.17.1).  Or at least drop support for the current
legacy.


More information about the Gcc-bugs mailing list