https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85574
--- Comment #20 from rguenther at suse dot de <rguenther at suse dot de> --- On January 2, 2019 5:25:09 PM GMT+01:00, "hubicka at gcc dot gnu.org" <gcc-bugzi...@gcc.gnu.org> wrote: >https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85574 > >--- Comment #19 from Jan Hubicka <hubicka at gcc dot gnu.org> --- >gcc 5 has: >inline bool > >val_ssa_equiv_hash_traits::equal_keys (tree value1, tree value2) > >{ > >return operand_equal_p (value1, value2, 0); > >} > > >/* Free an instance of equiv_hash_elt. */ > > >template<typename T> > >inline void > >val_ssa_equiv_hash_traits::remove (T &elt) > >{ > >elt.m_value.release (); > >} > > >while in mainline we seem to compare addresses... Looks like wrong >update to >hash_map. But still it doesn't explain differences in tree sharing between stage2 and three. But yes, I'll go track things down a bit more.