mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-06 13:30:00 +00:00
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 <[email protected]>