https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123298
--- Comment #9 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Richard Biener <[email protected]>: https://gcc.gnu.org/g:7a8c00dea5ec301d9e5af5fee5ff1fa469ccb1a1 commit r16-6575-g7a8c00dea5ec301d9e5af5fee5ff1fa469ccb1a1 Author: Richard Biener <[email protected]> Date: Thu Jan 8 10:10:25 2026 +0100 tree-optimization/123298 - fix backedge detection for VN alias walk When trying to skip a virtual PHI during an alias walk we have to direct a possible VN translation hook to not use valueization when walking a backedge. But this backedge detection was overly optimistic, not honoring irreducible regions. The following hookizes the backedge detection so VN can properly flag edges that are back with respect to its particular CFG traversal. PR tree-optimization/123298 * tree-ssa-alias.h (get_continuation_for_phi): Take a gphi *, add is_backedge hook argument. (walk_non_aliased_vuses): Add is_backedge hook argument. * tree-ssa-alias.cc (maybe_skip_until): Adjust. (get_continuation_for_phi): Use new hook to classify an edge into the PHI as backedge. (walk_non_aliased_vuses): Adjust. * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Likewise. * ipa-prop.cc (determine_known_aggregate_parts): Likewise. * tree-ssa-scopedtables.cc (avail_exprs_stack::lookup_avail_expr): Likewise. * tree-ssa-pre.cc (translate_vuse_through_block): Likewise. * tree-ssa-sccvn.cc (vn_bb_to_rpo): Make BB to RPO order mapping accessible from new hook. (do_rpo_vn_1): Likewise. (vn_is_backedge): New hook to classify edge. (vn_reference_lookup_pieces): Adjust. (vn_reference_lookup): Likewise. * gcc.dg/torture/pr123298.c: New testcase.
