Skip to content

Conversation

@igogo-x86
Copy link

Deduplicate duplicate phijmp sources so each phi operand has its own SSA name. When two phi operands pointed at the same penalty vector, biasing one register also penalized the other, so we almost never picked a single physreg for the phidef/phijmp chain. That produced extra copy/copy2s (especially painful on AArch64 where there’s no xchg). Splitting duplicates during preparation keeps the penalty data independent and reduces those redundant moves.

Deduplicate duplicate phijmp sources so each phi operand has its own SSA name.
When two phi operands pointed at the same penalty vector, biasing one register
also penalized the other, so we almost never picked a single physreg for the
phidef/phijmp chain. That produced extra copy/copy2s (especially painful on
AArch64 where there’s no xchg). Splitting duplicates during preparation keeps
the penalty data independent and reduces those redundant moves.
@meta-cla meta-cla bot added the CLA Signed label Dec 4, 2025
@meta-codesync
Copy link

meta-codesync bot commented Dec 4, 2025

@facebook-github-bot has imported this pull request. If you are a Meta employee, you can view this in D88385561. (Because this pull request was imported automatically, there will not be any future comments.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant