Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge with upstream #217

Merged
merged 9 commits into from
Aug 23, 2024
Merged

Merge with upstream #217

merged 9 commits into from
Aug 23, 2024

Conversation

dhil
Copy link
Member

@dhil dhil commented Aug 23, 2024

No description provided.

fitzgen and others added 9 commits August 21, 2024 15:28
…#9159)

They are superseded by the new user stack maps implementation.
* stack_switch instruction

* Update cranelift/codegen/src/isa/x64/pcc.rs

Co-authored-by: Nick Fitzgerald <[email protected]>

* cargo fmt

* only lower on linux

* give stack_switch the call() side effect

* add function in filetest doing switching only

* Extend documentation of new instruction

* better comments on how we handle the payloads

* Revert "only lower on linux"

This reverts commit 2af10f9.

* Add StackSwitchModel, use to compile stack_switch

* turn stack_switch_model into partial constructor

---------

Co-authored-by: Nick Fitzgerald <[email protected]>
…ce#9158)

* Update handling of wasm features and `*.wast` testing

This commit is an attempt at making it easier to manage the set of
variables we have in play with `*.wast` testing and wasm features.
The Cranelift and Winch backends support different sets of wasm features
at this time and historically Cranelift has also had
architecture-specific support for wasm features. This is hoped to help
simplify management of all of this in the future in addition to making
`*.wast` testing more robust. Notable changes here are:

* A `Config` no longer tracks a `WasmFeatures` but instead only tracks
  explicitly disabled/enabled features. The final `WasmFeatures` is then
  computed given the result of compiler configuration.
* Default-enabled features now start from nothing instead of
  `wasmparser`'s defaults to avoid future breakage there.
* Each compiler configuration and/or backend now has a listed set of
  "this feature may panic" wasm features. These are all disabled by
  default and if explicitly enabled a `Config::validate` error is
  returned.
* All `*.wast` tests are now run through both Cranelift and Winch. Tests
  are now asserted to either fail or pass depending on configuration and
  the whole test will fail if the result doesn't match the expectation.
* Many `gc` proposal tests which are now passing are flagged as passing
  now. Failing `winch` tests are now explicitly listed instead of using
  a litany of patterns.

* Change panicking features for winch

* Fix builds without a compiler
…codealliance#9099)

* pulley: add `push` and `pop` instructions

Add `xpush{32, 64}` and `xpop{32, 64}` for pushing/popping XRegs from the stack,
and `push_frame`/`pop_frame` for saving/restoring LR and FP in function
prologue/epilogue.

Copyright (c) 2024, Arm Limited.

Signed-off-by: Karl Meakin <[email protected]>

* cranelift-bitset: more impls for `ScalarBitset`

Implement `Arbitrary` for `ScalarBitset`.

Also implement `DoubleEndedIterator` and `ExactSizeIterator` for `Iter`.
The `pop_min` method was added to help implement `DoubleEndedIterator`,
and `pop` was renamed to `pop_max` for consistency.

Copyright (c) 2024, Arm Limited.

Signed-off-by: Karl Meakin <[email protected]>

* pulley: add instructions for pushing/popping list of registers

Add `xpush{32,64}_many` and `xpop{32,64}_many` for pushing/popping any
combination of all 32 XRegs.

Copyright (c) 2024, Arm Limited.

Signed-off-by: Karl Meakin <[email protected]>

---------

Signed-off-by: Karl Meakin <[email protected]>
* Bump wasm-tools dependencies

This commit updates the wasm-tools dependencies to their 216 track of
versions. This will be followed-up with some updates to how some
features are managed.

* Update vets and depend on crates.io
…ance#9164)

* Remove reference types (`r32` and `r64`) from Cranelift

* restore fuzz regression test
…e#9166)

These are used for all GC refs, not just non-`i31ref` ones.
@dhil dhil merged commit 1f86598 into wasmfx:main Aug 23, 2024
49 checks passed
@dhil dhil deleted the wasmfx-merge branch August 23, 2024 16:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants