github-actions[bot] commented on issue #4858:
Subscribe to Label Action
cc @cfallin, @fitzgen
<details>
This issue or pull request has been labeled: "cranelift", "cranelift:area:aarch64", "cranelift:area:machinst", "cranelift:area:x64", "isle"Thus the following users have been cc'd because of the following labels:
- cfallin: isle
- fitzgen: isle
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
cfallin commented on issue #4858:
Updated, thanks!
cfallin commented on issue #4858:
Thanks! Updated.
cfallin commented on issue #4858:
I find it particularly exciting that sometimes x64 can now completely avoid allocating any stack space for spilling registers that are supposed to be saved across calls! Have you done any performance comparisons on this?
Yeah, the one example in
call-conv.clifis actually really nice: letting RA2 use its unified move resolution lets it handle a "shift every arg over by one" case without any temps, whereas the old explicit-move approach required a bunch of registers and ended up encroaching into callee-saves (r13, r14, 15).Measurements on SpiderMonkey.wasm and bz2 show only small effects in the noise, so this doesn't seem to matter for those particular cases, but I'm sure I could find benchmarks where it does affect an inner loop somewhere. In any case it's a nice semantic cleanup, generates slightly smaller code, and takes us one step closer to removing the pinned vregs!
Last updated: Jan 09 2026 at 13:15 UTC