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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
                 CC|                            |hubicka at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
We have a duplicate for this - basically (most) of alias analysis doesn't
handle aliases (hah).

In this case it's points-to I think and then FRE facing

  # p_1 = PHI <&c(2), &b(3)>
  *p_1 = 1;
  d = 2;
  _11 = *p_1;

and optimizing the load to 1.  Honza has fixed some cases for GCC 6 but
appearantly not points-to.

See tree-ssa-structalias.c, lookup_vi_for_tree should probably canonicalize
to the ultimate alias.  pt_solution_set_var and pt_solution_includes_1
need to be adjusted accordingly as well.

-fno-tree-pta fixes this bug (on trunk).

Honza - I'd need sth like equal_address_to (as used in compare_base_decls)
but "one sided" so that if two decls have the same address they get
canonicalized to the same decl so I can continue to use DECL_UID equality
for the alias check.

Reply via email to