This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/77362] [6/7 Regression] [graphite] ICE in sese_build_liveouts_use w/ -O2 -floop-nest-optimize
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 31 Jan 2017 15:26:16 +0000
- Subject: [Bug tree-optimization/77362] [6/7 Regression] [graphite] ICE in sese_build_liveouts_use w/ -O2 -floop-nest-optimize
- Auto-submitted: auto-generated
- References: <bug-77362-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77362
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Sebastian Pop from comment #8)
> LIM in general is bad for loop transforms: it introduces loop carried
> dependences. If we can move graphite before LIM that would solve some
> problems.
Yeah, but the user can write such dependences himself so ideally we have
a way to undo them, like by using local scratch memory? So
x_0 = 1;
loop:
# x_1 = PHI <x_0, x_2>
...
x_2 = ...;
goto loop;
turns into
mem = 1;
loop:
x_1 = mem;
x_2 = ...;
mem = x_2;
goto loop;
plus replacement of exit PHIs with loads. Would that help? Or does the
new (non-aliased, loop invariant) memory location complicate things as well?