This issue captures work items and other notes related to profile synthesis in RyuJit.
Overview
Profile synthesis is an algorithm to estimate plausible block and edge profile data. It can be used to guide optimizations in the absence of true profile data, fill in gaps in profile data, or repair damaged (inconsistent data).
See the section on synthesis in the main Dynamic PGO for more context.
Completed for .NET 8
Opportunistic work for .NET 8
Note a number of the above were handled in .NET 9, see #93020
This issue captures work items and other notes related to profile synthesis in RyuJit.
Overview
Profile synthesis is an algorithm to estimate plausible block and edge profile data. It can be used to guide optimizations in the absence of true profile data, fill in gaps in profile data, or repair damaged (inconsistent data).
See the section on synthesis in the main Dynamic PGO for more context.
Completed for .NET 8
Opportunistic work for .NET 8
fgGetPredForBlock-- we often want to go from a block to the successor edgesSome initial data in JIT: profile synthesis consistency checking and more #83068.
fgFirstBBbeing specialNote a number of the above were handled in .NET 9, see #93020