JIT: fix try region cloning when try is nested in a handler#111975
Merged
AndyAyersMS merged 1 commit intodotnet:mainfrom Jan 29, 2025
Merged
JIT: fix try region cloning when try is nested in a handler#111975AndyAyersMS merged 1 commit intodotnet:mainfrom
AndyAyersMS merged 1 commit intodotnet:mainfrom
Conversation
We were not placing the new EH region in the table properly, and not correctly updating the handler indexes of cloned blocks. Add some test cases where we have cloneable loops with EH inside of finallies. Fixes some issues that came up testing dotnet#111473
Member
Author
|
@dotnet/jit-contrib PTAL |
Contributor
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
amanasifkhalid
approved these changes
Jan 29, 2025
| EHblkDsc* const originalEbd = ehGetDsc(originalHndIndex); | ||
| EHblkDsc* const clonedEbd = ehGetDsc(cloneHndIndex); | ||
| EHblkDsc* const originalEbd = ehGetDsc(originalHndIndex); | ||
| EHblkDsc* const clonedEbd = ehGetDsc(cloneHndIndex); |
Contributor
There was a problem hiding this comment.
Are these ehGetDsc calls dead code? Ditto the ehGetDsc calls above for the try region logic.
Member
Author
There was a problem hiding this comment.
Yeah, looks like they are.
This code has been churned quite a bit... I am still fighting off the temptation to revise the entire EH model since it is currently not update friendly. In retrospect perhaps that would have been an easier path.
Member
Author
There was a problem hiding this comment.
I'll fix that in a subsequent PR.
Member
Author
|
Also interesting bit of trivia: methods with loops in finallys bypass tiering, since we can't OSR from a finally. |
grendello
added a commit
to grendello/runtime
that referenced
this pull request
Jan 30, 2025
* main: (31 commits) More native AOT Pri-1 test tree bring up (dotnet#111994) Fix BigInteger outerloop test (dotnet#111841) JIT: Run 3-opt once across all regions (dotnet#111989) JIT: Check for profile consistency throughout JIT backend (dotnet#111684) [JIT] Add legacy extended EVEX encoding and EVEX.ND/NF feature to x64 emitter backend (dotnet#108796) [iOS][globalization] Fix IndexOf on empty strings on iOS to return -1 (dotnet#111898) System.Speech: Use intellisense xml from dotnet-api-docs (dotnet#111983) [mono][mini] Disable inlining if we encounter class initialization failure (dotnet#111754) [main] Update dependencies from dotnet/roslyn (dotnet#111946) Update dependencies from https://github.com/dotnet/arcade build 20250129.2 (dotnet#111996) Try changing the ICustomQueryInterface implementation to always return NotHandled instead of Failed to defer back to the ComWrappers impl. (dotnet#111978) Combined dependency update (dotnet#111852) Replace OPTIMIZE_FOR_SIZE with feature switch (dotnet#111743) Fix failed assertion 'FPbased == FPbased2' (dotnet#111787) Add remark to `ConditionalSelect` (dotnet#111945) JIT: fix try region cloning when try is nested in a handler (dotnet#111975) Use IRootFunctions in Tensor.StdDev (dotnet#110641) Remove zlib dependencies from Docker containers (dotnet#111939) Avoid `Unsafe.As` for `Memory<T>` and `ReadOnlyMemory<T>` conversion (dotnet#111023) Cleanup membarrier portability (dotnet#111943) ...
This file contains hidden or 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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
We were not placing the new EH region in the table properly, and not correctly updating the handler indexes of cloned blocks.
Add some test cases where we have cloneable loops with EH inside of finallies.
Fixes some issues that came up testing #111473