cfallin opened PR #4571 from remove-baldrdash
to main
:
As noted in Mozilla's bugzilla bug 1781425 [1], the SpiderMonkey team
has recently determined that their current form of integration with
Cranelift is too hard to maintain, and they have chosen to remove it
from their codebase. If and when they decide to build updated support
for Cranelift, they will adopt different approaches to several details
of the integration.In the meantime, after discussion with the SpiderMonkey folks, they
agree that it makes sense to remove the bits of Cranelift that exist
to support the integration ("Baldrdash"), as they will not need
them. Many of these bits are difficult-to-maintain special cases that
are not actually tested in Cranelift proper: for example, the
Baldrdash integration required Cranelift to emit function bodies
without prologues/epilogues, and instead communicate very precise
information about the expected frame size and layout, then stitched
together something post-facto. This was brittle and caused a lot of
incidental complexity ("fallthrough returns", the resulting special
logic in block-ordering); this is just one example. As another
example, one particular Baldrdash ABI variant processed stack args in
reverse order, so our ABI code had to support both traversal
orders. We had a number of other Baldrdash-specific settings as well
that did various special things.This PR removes Baldrdash ABI support, the
fallthrough_return
instruction, and pulls some threads to remove now-unused bits as a
result of those two, with the understanding that the SpiderMonkey folks
will build new functionality as needed in the future and we can perhaps
find cleaner abstractions to make it all work.[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1781425
<!--
Please ensure that the following steps are all taken care of before submitting
the PR.
[ ] This has been discussed in issue #..., or if not, please tell us why
here.[ ] A short description of what this does, why it is needed; if the
description becomes long, the matter should probably be discussed in an issue
first.[ ] This PR contains test cases, if meaningful.
- [ ] A reviewer from the core maintainer team has been assigned for this PR.
If you don't know who could review this, please indicate so. The list of
suggested reviewers on the right can help you.Please ensure all communication adheres to the code of conduct.
-->
cfallin requested fitzgen for a review on PR #4571.
cfallin requested bnjbvr for a review on PR #4571.
cfallin updated PR #4571 from remove-baldrdash
to main
.
bjorn3 submitted PR review.
bjorn3 created PR review comment:
I think this test should be kept, but with a different call conv.
bjorn3 submitted PR review.
bjorn3 created PR review comment:
Maybe keep this comment, but replace the description of spidermonkey with one of wasmtime's call conv?
bjorn3 created PR review comment:
this misses the wasmtime variants of system_v and fastcall.
bjorn3 submitted PR review.
bjorn3 submitted PR review.
bjorn3 created PR review comment:
I think this file should be deleted.
fitzgen submitted PR review.
cfallin updated PR #4571 from remove-baldrdash
to main
.
cfallin submitted PR review.
cfallin created PR review comment:
Updated (and added the other missing ones too), thanks!
cfallin submitted PR review.
cfallin created PR review comment:
Updated, thanks.
cfallin updated PR #4571 from remove-baldrdash
to main
.
cfallin updated PR #4571 from remove-baldrdash
to main
.
bnjbvr submitted PR review.
bnjbvr submitted PR review.
bnjbvr created PR review comment:
We can likely remove the
use_allocated_encoding
now as it always uses it, instead, and simplify some code in codegen?
bnjbvr created PR review comment:
can this arg be removed now?
bnjbvr created PR review comment:
- Can the unused arguments be removed now?
- (I haven't checked, so maybe not the case) Can the
get_ext_mode
be removed entirely and inlined in its call sites (or implemented at a different level), if it returns the same thing on all the archs?
bnjbvr created PR review comment:
can this arg be removed now?
bnjbvr created PR review comment:
looks like this arg could be removed too?
bnjbvr created PR review comment:
oh wow, glad to see this go away
bnjbvr created PR review comment:
ubernitty, but: these are still valid _initial_ planned uses, even if they don't materialize now; maybe we can keep this for archeologists, and add a mention that these are not planned uses at this point anymore?
bnjbvr created PR review comment:
Can this argument be removed now too?
cfallin updated PR #4571 from remove-baldrdash
to main
.
cfallin submitted PR review.
cfallin created PR review comment:
Indeed!
cfallin created PR review comment:
Done, thanks!
cfallin submitted PR review.
cfallin submitted PR review.
cfallin created PR review comment:
Indeed, removed.
cfallin submitted PR review.
cfallin created PR review comment:
Fixed the wording a bit with use of past tense: "initial planned uses were..." plus some current-status verbiage.
cfallin submitted PR review.
cfallin created PR review comment:
Indeed, done!
cfallin created PR review comment:
I opted to keep
get_ext_mode
because it's used in s390x currently and I didn't want to dig too deeply to see how it might or might not be inlinable. Good question though!
cfallin submitted PR review.
cfallin submitted PR review.
cfallin created PR review comment:
Done!
cfallin has enabled auto merge for PR #4571.
cfallin updated PR #4571 from remove-baldrdash
to main
.
cfallin merged PR #4571.
Last updated: Dec 23 2024 at 12:05 UTC