[Bug tree-optimization/56756] [4.9 Regression] ICE: verify_ssa failed (definition in block n follows the use !)
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Apr 16 11:56:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56756
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> 2013-04-16 11:56:26 UTC ---
The issue is that
static void
execute_sm (struct loop *loop, vec<edge> exits, mem_ref_p ref)
{
...
/* Emit the load code into the latch, so that we are sure it will
be processed after all dependencies. */
latch_edge = loop_latch_edge (loop);
is no longer working. It wasn't working by design before either.
We temporarily create
<header> <-----------\
| |
if () |
/ \ |
_17 = *q_8(D); |
\ / |
D__lsm.5 = *_17;-----
that is invalid SSA form and expect a dominator walk to visit
_17 = *q_8(D) before visiting D__lsm.5 = *_17;
So a simpler fix than the attached one finds a better temporary
insertion place for D__lsm.5 = *_17;
Placing the load at a random existing load or store would be the
best. I'm reworking the patch to do that.
More information about the Gcc-bugs
mailing list