Closed BruceForstall closed 1 month ago
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch See info in area-owners.md if you want to be subscribed.
Author: | BruceForstall |
---|---|
Assignees: | - |
Labels: | `area-CodeGen-coreclr`, `User Story` |
Milestone: | 9.0.0 |
With recent work we are close to having moved from the old lexical representation of loops to a more general graph-based one. Since I'll be out until New Year's, here's a more detailed list of work done and expected future work.
optSetBlockWeights
and by optFindAndScaleGeneralLoopBlocks
, but should be switchable to the new dominator implementation relatively easily.optFindAndScaleGeneralLoopBlocks
also depends on dense reachability sets; in common cases (where the flow graph does not have irreducible loops) we may be able to replace them by loop containment checks. Eventually we'd like all of this to be replaced by profile synthesis.Some stats from the loop representation switch over some of our win-x64 collections:
.NET9 work is complete. Closing.
Will move the pushed-out items to .NET 10 user story during .NET 10 planning.
We plan to continue improving JIT optimization capabilities for loop code. An overview of many JIT optimization possibilities is here; this issue will focus on issues we choose to address in .NET 9.
Planned for .NET 9
Loop recognition and canonicalization
Loop cloning
Induction variables
Pushed out of .NET 9
Loop cloning
Multi-dimensional array improvements
Loop peeling