-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Unsafe.As being intrinsic has exposed a few JIT related issues #69505
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
CC. @jkotas. Would appreciate your feedback on this in particular and if there is a preference on direction. |
The proposed switch would impact all It would not impact the existing VM or inlining support that we've had for many releases. |
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsIssue#68739 switched several APIs to be While this in general has been positive there have been a couple of issues related to These issues don't appear to be related to the IR being "incorrect" but rather due to less spilling to locals and similar issues causing tree shapes that weren't encountered previously. This has lead to at least one GC hole being exposed and is potentially related to other issues that have cropped up. Proposed "Fix"Given that it is generally desirable for this approach to be used "long term", but the issues that crop up are flaky by nature, it may be beneficial to provide a "switch" that allows this feature to be toggled on/off. In particular, I propose we either provide a new If a This would allow us to continue having the feature and getting failures raised until our confidence is high enough that they have been resolved so this can be enabled in production.
|
I do not think it makes sense to introduce a switch for this. We should just fix the bugs. We can use |
cc @dotnet/jit-contrib. |
Going to close this as per Jan's comment. Any additional issues should be addressed as they come up. |
Issue
#68739 switched several APIs to be
intrinsic
to the JIT and have the respective IR imported directly by the JIT rather than go through inlining.While this in general has been positive there have been a couple of issues related to
Unsafe.As
that have cropped up.These issues don't appear to be related to the IR being "incorrect" but rather due to less spilling to locals and similar issues causing tree shapes that weren't encountered previously.
This has lead to at least one GC hole being exposed and is potentially related to other issues that have cropped up.
Proposed "Fix"
Given that it is generally desirable for this approach to be used "long term", but the issues that crop up are flaky by nature, it may be beneficial to provide a "switch" that allows this feature to be toggled on/off.
In particular, I propose we either provide a new
COMPlus_*
switch orFEATURE_*
define that allows this functionality to beon
by default fordebug
/checked
builds andoff
by default forrelease
builds.If a
COMPlus_*
switch were defined then users could opt-into the functionality inrelease
mode and if we ever changed the default they would have an "out" if any problematic behavior shows up later in an edge case scenario.This would allow us to continue having the feature and getting failures raised until our confidence is high enough that they have been resolved so this can be enabled in production.
The text was updated successfully, but these errors were encountered: