-
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: fix remaining phases that were rebuilding pred edges #80769
JIT: fix remaining phases that were rebuilding pred edges #80769
Conversation
Loop canonicalization now maintains pred edges. GC poll insertion was already maintaining the edges but was rebuilding them anyways. Now pred lists are never rebuilt. Also revise `fgUpdateChangedFlowGraph` so that it no longer has the ability to remove or rebuild. Fixes dotnet#49030.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsLoop canonicalization now maintains pred edges. GC poll insertion was already maintaining the edges but was rebuilding them anyways. Now pred lists are never rebuilt. Also revise Fixes #49030.
|
@BruceForstall PTAL A handful of diffs expected, where we now have original edge weights instead of freshly constructed "know nothing" weights. |
/azp run runtime-coreclr jitstress, runtime-coreclr libraries-jitstress |
Azure Pipelines successfully started running 2 pipeline(s). |
/azp run runtime-coreclr jitstress, runtime-coreclr libraries-jitstress |
Azure Pipelines successfully started running 2 pipeline(s). |
Seeing
which is known stress issue #80773 |
SPMI diffs timed out for x86, am going to ignore this. |
Small TP win. Either rebuilding pred lists is pretty cheap or (more likely) most methods don't need gc polls or loop canonicalization. But that's not the point of this change - when we rebuild pred lists we throw away information, and (in upcoming work) we want to keep even more useful information there. |
Jitstress had some timeouts. Libraries jitstress had some widespread issue that seems unrelated. I am going to merge since I think I fixed the relevant issue and hopefully tonight's runs on main will be good. |
Loop canonicalization now maintains pred edges. GC poll insertion was already maintaining the edges but was rebuilding them anyways. Now pred lists are never rebuilt. Also revise `fgUpdateChangedFlowGraph` so that it no longer has the ability to remove or rebuild. Fixes dotnet#49030. Also fixes dotnet#80772.
Loop canonicalization now maintains pred edges. GC poll insertion was already maintaining the edges but was rebuilding them anyways.
Now pred lists are never rebuilt.
Also revise
fgUpdateChangedFlowGraph
so that it no longer has the ability to remove or rebuild.Fixes #49030.