This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/67470] [5/6 Regression] ICE at -O3 on x86_64-linux-gnu in compute_live_loop_exits, at tree-ssa-loop-manip.c:235
- 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, 15 Sep 2015 09:21:39 +0000
- Subject: [Bug tree-optimization/67470] [5/6 Regression] ICE at -O3 on x86_64-linux-gnu in compute_live_loop_exits, at tree-ssa-loop-manip.c:235
- Auto-submitted: auto-generated
- References: <bug-67470-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67470
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
g_40 = PHI <0B(9), &a(6)>
invariant up to level 1, cost 21.
pretmp_42 = g_40 == 0B;
invariant up to level 1, cost 22.
but we're only moving pretmp_42, not g_40. The PHI is controlled by
if (f_16(D) != 0). But when applying stmt movement we are faced with
g_40 = PHI <0B(9), &a(6)> turned into
<bb 11>:
# g_40 = PHI <0B(26), &a(21), &a(22), 0B(25)>
whoops. That's because predicated store-motion already messed up the
CFG without ensuring we have forwarder blocks that at least preserve
the existing PHI node structure.
This is a latent issue.