Skip to content
This repository has been archived by the owner. It is now read-only.

Allow [t*] -> [t*] if blocks with no else #135

Merged
merged 2 commits into from Sep 26, 2019

Conversation

fitzgen
Copy link
Member

@fitzgen fitzgen commented Sep 26, 2019

As long as the start and end types are the same, then we don't need to require an else block because a no-op will trivially implements that type signature.

This also enables the multi-value proposal spec tests, which test for this.

fitzgen and others added 2 commits Sep 26, 2019
As long as the start and end types are the same, then we don't need to require
an `else` block because a no-op will trivially implements that type signature.
(no api change)
@yurydelendik yurydelendik merged commit 70000a6 into bytecodealliance:master Sep 26, 2019
1 check was pending
@yurydelendik
Copy link
Collaborator

@yurydelendik yurydelendik commented Sep 26, 2019

Thank you for the patch.

@fitzgen fitzgen deleted the no-op-multi-value-else branch Sep 26, 2019
fitzgen referenced this issue in fitzgen/wasmtime Oct 3, 2019
This has a bug fix for multi-value Wasm validation that is required for getting
the spec tests passing.

https://github.com/yurydelendik/wasmparser.rs/pull/135
fitzgen referenced this issue in fitzgen/wasmtime Oct 15, 2019
This has a bug fix for multi-value Wasm validation that is required for getting
the spec tests passing.

https://github.com/yurydelendik/wasmparser.rs/pull/135
fitzgen referenced this issue in fitzgen/wasmtime Oct 17, 2019
This has a bug fix for multi-value Wasm validation that is required for getting
the spec tests passing.

https://github.com/yurydelendik/wasmparser.rs/pull/135
sunfishcode referenced this issue in bytecodealliance/wasmtime Oct 18, 2019
* deps: bump wasmparser to 0.39.2

This has a bug fix for multi-value Wasm validation that is required for getting
the spec tests passing.

https://github.com/yurydelendik/wasmparser.rs/pull/135

* Update cranelift to 0.46.1 to get multi-value Wasm support

The `cranelift_wasm` APIs had to change a little bit to maintain state necessary
when translating multi-value Wasm blocks. The `translate_module` function now
returns a `ModuleTranslationState` that is borrowed during each function's
translation.

* Enable multi-value proposal's spec tests

This enables all the Wasm multi-value proposal's spec tests other than the ones
that rely on functions having more return values than registers available on the
target. That is not supported by cranelift yet.

* wasmtime-interface-types: always use multi-value Wasm

And remove the return pointer hacks that work around the lack of multi-value.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants