-
Notifications
You must be signed in to change notification settings - Fork 294
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
Implement re-designed Wasmi br_table
instructions
#1158
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This new design accounts for Wasmi `br_table`s where each `br_table` target may need to copy values to different registers before taking a branch which was an oversight in the previous design.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1158 +/- ##
==========================================
+ Coverage 79.62% 79.76% +0.14%
==========================================
Files 296 296
Lines 25533 25952 +419
==========================================
+ Hits 20331 20701 +370
- Misses 5202 5251 +49 ☔ View full report in Codecov by Sentry. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 new
br_table
design fixes a pathological encoding scheme with the oldbr_table
instruction when the branches required to copy values into different branch destination registers. The new design no longer has this pathological translation case and thus should use a lot less encoding space and be more efficient in some cases.The downside is that this increased complexity in both, the Wasmi translator and also in the Wasmi bytecode executor to some extend. However, it could also be argued that the translation of the new
br_table
instructions is a bit simpler overall since the pathological case no longer has to be handled.TODO
Instruction::BranchTableTargetNonOverlapping
in cases where possible.