JIT: change loop inversion edge weight updates and add phase#48364
JIT: change loop inversion edge weight updates and add phase#48364AndyAyersMS merged 7 commits intodotnet:masterfrom
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
fgOptWhileLooptooptInvertWhileLoop(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.