https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98464
--- Comment #8 from Kewen Lin <linkw at gcc dot gnu.org> --- (In reply to Richard Biener from comment #5) > But this > > sprime = eliminate_avail (gimple_bb (SSA_NAME_DEF_STMT (use)), use); > > should make it more conservative (compared to the more desirable use of > gimple_bb (stmt) aka 'b'). > > The issue is really that dominated_by_p_w_unex is not "transitive" with > respect to an intermediate immediate dominator chain. > > We can make that more consistent at least by doing sth like your patch but > only in vn_valueize_wrapper. OK, just noticed that wrapper is only for simplify_replace_tree. Thanks for fixing. But I still don't get why it's buggy for rpo_vn_valueize.