-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Consider adding BBJ_EHFAULTRET #84307
Comments
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsThe IL So, consider adding a
|
The IL `endfinally` and `endfault` instructions are aliases, imported in the JIT IR as `BBJ_EHFINALLYRET`. Introduce `BBJ_EHFAULTRET` for cases within `fault` clauses. This simplifies some code, and makes it more clear when writing code that `fault` clauses need to be considered, separately from `finally` clauses. To do this, after importing EH clauses, convert any `BBJ_EHFINALLYRET` as necessary. Also, try/finally cloning, which (sometimes) converts `finally` clauses to `fault` clauses, needs to update the corresponding `BBJ_EHFINALLYRET`. When creating new try/fault clauses for synchronized functions, use `BBJ_EHFAULTRET` now. Fixes dotnet#84307
The IL `endfinally` and `endfault` instructions are aliases, imported in the JIT IR as `BBJ_EHFINALLYRET`. Introduce `BBJ_EHFAULTRET` for cases within `fault` clauses. This simplifies some code, and makes it more clear when writing code that `fault` clauses need to be considered, separately from `finally` clauses. To do this, after importing EH clauses, convert any `BBJ_EHFINALLYRET` as necessary. Also, try/finally cloning, which (sometimes) converts `finally` clauses to `fault` clauses, needs to update the corresponding `BBJ_EHFINALLYRET`. When creating new try/fault clauses for synchronized functions, use `BBJ_EHFAULTRET` now. Fixes #84307
The IL
endfault
opcode is an alias forendfinally
. The JIT imports this as aBBJ_EHFINALLYRET
BasicBlock type. It would be helpful to distinguish the block types so as not to require consulting the EH table when examining the block type to determine which type of EH handler we are in.So, consider adding a
BBJ_EHFAULTRET
BasicBlock type and using it for exits from afault
region.The text was updated successfully, but these errors were encountered: