Stream: git-wasmtime

Topic: wasmtime / issue #4858 ABI: implement register arguments ...


view this post on Zulip Wasmtime GitHub notifications bot (Sep 02 2022 at 21:39):

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:

To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.

Learn more.
</details>

view this post on Zulip Wasmtime GitHub notifications bot (Sep 08 2022 at 06:30):

cfallin commented on issue #4858:

Updated, thanks!

view this post on Zulip Wasmtime GitHub notifications bot (Sep 08 2022 at 23:05):

cfallin commented on issue #4858:

Thanks! Updated.

view this post on Zulip Wasmtime GitHub notifications bot (Sep 09 2022 at 01:03):

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.clif is 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