-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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: Optimize liveness fixpoint computation #89328
JIT: Optimize liveness fixpoint computation #89328
Conversation
When propagating liveness as part of the fixpoint computation we union the live-in state of all successors into the live-out state. We then further handle EH successors more conservatively since control can flow to those from any point in the BB. The all-successors include successors from two additional sources compared to the regular successors: 1. They include the EH successors, but we already handle these conservatively later, so this is unnecessary. 2. They include EH successors of regular successors, but this liveness is already contributed from the regular successors since they will contain it in their live-in state at some point during the fixpoint computation. Thus we can switch the first loop in liveness to only look at regular successors.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsWhen propagating liveness as part of the fixpoint computation we union the live-in state of all successors into the live-out state. We then further handle EH successors more conservatively since control can flow to those from any point in the BB. The all-successors include successors from two additional sources compared to the regular successors:
Thus we can switch the first loop in liveness to only look at regular successors.
|
/azp run runtime-coreclr superpmi-diffs |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-coreclr jitstress, runtime-coreclr libraries-jitstress |
Azure Pipelines successfully started running 2 pipeline(s). |
cc @dotnet/jit-contrib PTAL @BruceForstall No diffs except for good TP improvements (e.g. -1.3% in asp.net win-x64). |
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
When propagating liveness as part of the fixpoint computation we union the live-in state of all successors into the live-out state. We then further handle EH successors more conservatively since control can flow to those from any point in the BB.
The all-successors include successors from two additional sources compared to the regular successors:
Thus we can switch the first loop in liveness to only look at regular successors.