-
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: change loop inversion edge weight updates and add phase #48364
JIT: change loop inversion edge weight updates and add phase #48364
Conversation
@BruceForstall PTAL SPMI seems to be missing collections for latest hash. Believe this should be no diff w/o profile data. I see a handful of diffs on a local collection with tiered PGO that I'll post shortly. |
Local diffs (on a collection with tiered PGO enabled)
Suspect the diffs in |
Rename `fgOptWhileLoop` to `optInvertWhileLoop` (using terminology from Muchnick). Split off this transformation into a new phase so it is easier to see its impact. Make the block updates / reorderings that follow into a proper phase as well. Use the test block exit likelihoods to update the profile weights for the edges involved in loop inversion. Because edge weight updates are now consistent we no longer need to recompute edge weights afterwards.
Ran SPMI diffs, found 157 methods with diffs; at a glance they all seem to be from assemblies with IBC. Am seeing some failures in CI that will require investigation. |
bb52bdb
to
2c33bd9
Compare
|
Rename
fgOptWhileLoop
tooptInvertWhileLoop
(using terminology fromMuchnick). Split off this transformation into a new phase so it is easier
to see its impact. Make the block updates / reorderings that follow into
a proper phase as well.
Use the test block exit likelihoods to update the profile weights for the
edges involved in loop inversion. Because edge weight updates are now
consistent we no longer need to recompute edge weights afterwards.