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.

Reply via email to