alexcrichton opened PR #9658 from alexcrichton:pulley-get-fp
to bytecodealliance:main
:
This commit implements the CLIF
get_frame_pointer
instruction which will be needed by trampolines in Wasmtime. This is implemented by generalizing the preexistingGetSp
MInst
into a "get special". This the additionally removes the extendedget_sp
opcode in Pulley as it's not necessary asxmov
can operate on this register.<!--
Please make sure you include the following information:
If this work has been discussed elsewhere, please include a link to that
conversation. If it was discussed in an issue, just mention "issue #...".Explain why this change is needed. If the details are in an issue already,
this can be brief.Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.htmlPlease ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->
alexcrichton requested cfallin for a review on PR #9658.
alexcrichton requested wasmtime-default-reviewers for a review on PR #9658.
alexcrichton requested wasmtime-compiler-reviewers for a review on PR #9658.
alexcrichton updated PR #9658.
github-actions[bot] commented on PR #9658:
Subscribe to Label Action
cc @cfallin, @fitzgen
<details>
This issue or pull request has been labeled: "cranelift", "isle", "pulley"Thus the following users have been cc'd because of the following labels:
- cfallin: isle
- fitzgen: isle, pulley
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
alexcrichton updated PR #9658.
alexcrichton updated PR #9658.
alexcrichton updated PR #9658.
alexcrichton commented on PR #9658:
ping @cfallin, mind taking a look at this?
cfallin submitted PR review:
Sorry, missed this review request! LGTM with a few minor bits below.
cfallin created PR review comment:
s/register/registers/
cfallin created PR review comment:
nit but end comment with
.
?
cfallin created PR review comment:
Can we add an assert here that
reg
is one of the special registers?
alexcrichton updated PR #9658.
alexcrichton has enabled auto merge for PR #9658.
alexcrichton merged PR #9658.
fitzgen submitted PR review:
FWIW, I kind of wanted to have the special registers not accessible by regular
xmov
/xadd
/etc... so we could have 32 regular x registers (and the compact 5 bit representaton for all regular x registers) and then for our handful of special registers we would just have special instructions for manipulating.This would trade using additional (presumably extended) opcodes for gaining more GPRs, which should help us avoid that many more regalloc spills. Spills result in more instructions, which means more turns of the interpreter loop, which is (expected to be) the most expensive part of wasm execution under pulley.
Not something we need to do now but it's something to think about as we design the instruction set, and maybe we should avoid similar changes as those included in this PR which move us away from that vision in the future where we can.
alexcrichton commented on PR #9658:
Yeah I've been thinking similarly that I'd prefer to take these registers out of the gpr set, I've opened https://github.com/bytecodealliance/wasmtime/issues/9747 and added this there.
Last updated: Dec 23 2024 at 12:05 UTC