[Wasm GC] RefIs / RefEq / RefTest all return a boolean #4786
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This marks all reference operations that return 0/1 as doing so. This
allows various bitwise operations to be optimized on them.
This also marks StringEq as a boolean, though we can't test that fully yet
as Strings support is wip (no interpreter or other stuff yet).
As a driveby this moves
emitsBoolean
to its own file, and uses itin
getMaxBits
to avoid redundancy (the redundant code paths now havea
WASM_UNREACHABLE
). I could do that in a prior PR if you prefer but itseems trivial?
This removes 14% of all
select
operations on j2wasm. Those selectsare
x ? 1 : 0
which we turn intox
if the input is already a boolean.