AnyPS5/core
STL1te 6a73ec426f fix(shader): a selection whose arm continues merges where the other arm goes
findSelectionMerge took the nearest common post-dominator of a selection's
targets, computed across the loop's back edge. When one arm only continues
(reaching that block in a later iteration) and the other target is shared
with an enclosing selection, the shared merge was split off the header, the
post-dominator stayed where it was, and splitting repeated until the budget
threw.

Inside a loop, an arm that reaches the post-dominator only past the continue
or merge block now leaves the selection by continuing, and the merge is the
other arm's target; after one split that is the header's own synthetic merge.
agc_structurizer_tests builds the smallest such graph; it hit the budget
before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 21:22:20 +03:00
..
Decoder/Jpeg fix(jpegenc): hide shared encoder symbols and document grayscale output 2026-09-29 15:17:27 +01:00
libs fix(shader): a selection whose arm continues merges where the other arm goes 2026-09-29 21:22:20 +03:00
relinker feat(relinker): exclude single sce_module files, tolerate a zero code tail 2026-09-29 21:22:11 +03:00
shader/recompiler fix(shader): a selection whose arm continues merges where the other arm goes 2026-09-29 21:22:20 +03:00