[Bug tree-optimization/80181] [7 Regression] ICE in set_lattice_value, at tree-ssa-ccp.c:505
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 27 09:10:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80181
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ok, so we have
dl_7 = vp_2 ^ _1;
dl_8 = dl_7 ^ vp_2;
where in the first iteration dl_7 is optimistically _1 (vp_2 is 0) and
thus this gets simplified to dl_7 (CONSTANT). While
in the 2nd iteration it is VARYING, then this gets simplified to _1
(CONSTANT) which has already been fully propagated and thus gets its
lattice value used (UNDEFINED). So we get a bogus lattice transition
CONSTANT -> UNDEFINED.
There's a missed optimization that we do not treat XOR as UNDEFINED if
one operand is undefined. That fixes the testcase.
More information about the Gcc-bugs
mailing list