-
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: Mark swift error as busy before call definition RefPosition #101792
Conversation
The RefPosition we were inserting here was inserted too late to actually protect the call definition from being allocated into the error register. Instead, we can just mark the existing `RefTypeFixedReg` created for the argument use as delay freed, which will have the intended effect of keeping the error register busy until after the call definition.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
TP differences are because of inlining decision changes. No longer calling
We expect these decisions to be significantly altered by native PGO anyway, so I don't see much point in making any changes here. |
cc @dotnet/jit-contrib PTAL @amanasifkhalid @kunalspathak |
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.
LGTM -- might be a good idea to run outerloop and/or jitstressregs (I think I remember the latter exposing a case where LSRA would try to use the error register to hold the Swift call's address). Thanks!
/azp run runtime-coreclr outerloop, runtime-coreclr jitstressregs |
Azure Pipelines successfully started running 2 pipeline(s). |
…net#101792) The RefPosition we were inserting here was inserted too late to actually protect the call definition from being allocated into the error register. Instead, we can just mark the existing `RefTypeFixedReg` created for the argument use as delay freed, which will have the intended effect of keeping the error register busy until after the call definition.
…net#101792) The RefPosition we were inserting here was inserted too late to actually protect the call definition from being allocated into the error register. Instead, we can just mark the existing `RefTypeFixedReg` created for the argument use as delay freed, which will have the intended effect of keeping the error register busy until after the call definition.
The RefPosition we were inserting here was inserted too late to actually protect the call definition from being allocated into the error register.
Instead, we can just mark the existing
RefTypeFixedReg
created for the argument use as delay freed, which will have the intended effect of keeping the error register busy until after the call definition.Noticed this while looking at the RefPositions in #101760 (comment).