-
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
Add and use a MakeSrcRegOptional that validates IsSafeToContainMem was called #77895
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThe general issue was raised here: #77798 (comment) and has surfaced in other areas in the past, such as #72673. This isn't a comprehensive fix, but did grab the most obvious places. There are still a number of remaining areas where we call
|
CC. @dotnet/jit-contrib |
There are a few diffs -- can you explain / give examples? Also looks like a slight throughput regression. Presumably because we're doing containment validity checks that were omitted before? |
Right. Since SuperPMI is testing
The general issue this is fixing is that it isn't safe to mark a node as For example, in For this logic, we correctly checked
Then containing |
SPMI throughput uses release builds. |
Ah, ok. I guess its diffs only that's checked. I thought it was both. The diff here is Since its so small and its for correctness, we should likely take it. Notably, we've already gotten some significantly more substantial throughput wins in the past few months so this won't "regress" us compared to the last release. We could potentially restrict some containment/regOptional checks to "optimized code only" as well, which would avoid the more expensive checks. |
The general issue was raised here: #77798 (comment) and has surfaced in other areas in the past, such as #72673.
This isn't a comprehensive fix, but did grab the most obvious places. There are still a number of remaining areas where we call
SetContained
andSetRegOptional
directly and where we should migrate them towardsMakeSrcContained/RegOptional
in the future.