-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
winch: Epoch-based interruption #9737
Conversation
Subscribe to Label Action
This issue or pull request has been labeled: "fuzzing", "winch"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great! Just a couple nitpicks inline.
Also I know that most of the testing will be covered by fuzzing and the existing epoch tests, but it may make sense to throw in a single disas test with epochs enabled as well that contains a some if
s, block
s, and a loop
just to show that we insert epoch checks only on the loop headers and body prologue. Could also be used to see that deadlines are actually cached, if we ever get around to doing that here.
This commits ports the suggestions made in bytecodealliance#9737 to fuel checks. Namely * Prefer the usage of `*_reg` over `*_var` * Add a couple of disassembly tests
This commits ports the suggestions made in bytecodealliance#9737 to fuel checks. Namely * Prefer the usage of `*_reg` over `*_var` * Add a couple of disassembly tests
Closes bytecodealliance#8091 This commit introduces support for epoch interruption to Winch. The heuristics around epoch check emission are identical to Cranelift's except for the fact that the current implementation doesn't introduce a local-based cache for the current epoch deadline. This is an intentional decision given Winch's focus on compilation performance. However, if needed in the future, knobs could be introduced to optionally introduce a local cache at the cost of reduced compilation performance.
bdbb405
to
f4628c3
Compare
This commits ports the suggestions made in bytecodealliance#9737 to fuel checks. Namely * Prefer the usage of `*_reg` over `*_var` * Add a couple of disassembly tests
This commits ports the suggestions made in #9737 to fuel checks. Namely * Prefer the usage of `*_reg` over `*_var` * Add a couple of disassembly tests
Closes #8091
This commit introduces support for epoch interruption to Winch. The heuristics around epoch check emission are identical to Cranelift's except for the fact that the current implementation doesn't introduce a local-based cache for the current epoch deadline. This is an intentional decision given Winch's focus on compilation performance. However, if needed in the future, knobs could be introduced to optionally introduce a local cache at the cost of reduced compilation performance.