https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118867
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |amacleod at redhat dot com,
| |rguenth at gcc dot gnu.org
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
We have helpers for folding compares that canonicalize on the fly - we are
nowhere canonializing such ADDR_EXPRs (to &MEM[&decl + CST]) because of
object-size and late diagnostics.
VN _should_ have figured this though by means of predication
_30 = listJets.D.31591._M_impl._M_node.D.14392._M_next;
if (&listJets.D.31591._M_impl._M_node.D.14392 == _30)
goto <bb 19>; [5.50%]
else
goto <bb 9>; [94.50%] -> register &listJets.D.31591._M_impl._M_node.D.14392
!= _30
<bb 9> [local count: 118111600]:
if (&MEM[(struct _List_node_header *)&listJets].D.14392 != _30)
-> find it. Unless there are other edges into BB 9, of course, in which
case jump-threading is required and likely ranger / relations do not
record "canonialized" ADDR_EXPRs.