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.