-
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
Jit: Conditional Escape Analysis and Cloning #111473
base: main
Are you sure you want to change the base?
Conversation
Enhance escape analysis to determine if an object escapes only under failed GDV tests. If so, clone to create a path of code so that the object doesn't escape, and then stack allocate the object. More details in the included document. Contributes to dotnet#108913
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
@dotnet/jit-contrib PTAL Not sure who wants to sign up to review this. Let me know. SPMI is not going to be useful here. We can try MihuBot but that may not show much either. |
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.
Nice writeup! I haven't looked at the code yet, though you should probably get someone else to look at it
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
docs/design/coreclr/jit/DeabstractionAndConditionalEscapeAnalysis.md
Outdated
Show resolved
Hide resolved
One of the libraries failures is that we're not updating the enclosing EH extents properly.
It should be possible to reorder these and put the clone after, but the EH lexicality constraints have been a consistent source of trouble. |
Enhance escape analysis to determine if an object escapes only under failed GDV tests. If so, clone to create a path of code so that the object doesn't escape, and then stack allocate the object.
More details in the included document.
Contributes to #108913