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

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ok - so when we enter tail-merging we have in BB2

<bb 2>:
# .MEM_9 = VDEF <.MEM_8(D)>
b = 1;
# .MEM_10 = VDEF <.MEM_9>
d[1] = 1;
if (1 != 0)
  goto <bb 11>;
else
  goto <bb 12>;

and at least one SSA name (the one we crash on) in the unreachable path
is already released (but the stmt is still "there"...!?).

Hmm, it seems that tree-ssa-pre.c:eliminate () thinks it can propagate
to all uses but when it visits the use in question its value is no longer
available.

Ah, the way we now implement PRE insertion inhibiting for vectorization
doesn't play well with the "simple" availability tracking.

I have a patch.

Reply via email to