-
Notifications
You must be signed in to change notification settings - Fork 4.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Phase 1 of refactoring pgo data pipeline (#46638)
Phase 1 of replacing existing infrastructure around handling of pgo data with more flexible schema based approach. The schema based approach allows the JIT to define the form of data needed for instrumentation. - The schema associates 4 32bit integers with each data collection point (ILOffset, InstrumentationKind, Count, and Other) - Rich meaning is attached to InstrumentationKind, and Count - InstrumentationKind defines the size and layout of individual instrumentation data items - Count allows a single schema item to be repeated - ILOffset and Other are not processed in any specific way by the infrastructure Changes part of this phase - PgoManager holds arbitrary amount of pgo data instead of a slab - Aware of collectible assemblies - Match with pgo data utilizes hash of IL body in addition to IL size information for greater accuracy in match - JIT no longer uses block count apis, and instead uses schema based apis - JIT now explicitly defines the shape of data collected for both basic block and type probes - The rest of the system handles that without deep knowledge of what those formats are - Text file format for pgo data updated - Existing IBC infrastructure adjusted to speak in terms of schema concept - Uncompressed and binary encoded implementation of Pgo schema handling - Update SuperPMI to handle new apis Future Changes for static Pgo - Move Pgo type handle histogram processing into JIT - Extract Pgo data from process using Event infrastructure - Triggers for controlling Pgo data extraction - Instrumented Pgo processing as part of dotnet-pgo tool - Pgo data flow in crossgen2
- Loading branch information
1 parent
fd744a8
commit 6ded57b
Showing
41 changed files
with
2,757 additions
and
956 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.