-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
Bottom Up WorkNot part of a theme, epic, or user storyNot part of a theme, epic, or user storyUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.area-crossgen2-coreclr
Description
As part of .NET 5 we introduced Crossgen2 to pre-compile assemblies. As part of .NET 6 Crossgen2 will replace Crossgen1 within the runtime and SDK. This contributes towards this Theme: dotnet/core#5438
Functionality
- Migration-blocking bugs fixed / triaged
- x86 / arm32 support
- Apple Silicon parity with Crossgen
- PDB generation [Tomas]
- Cross-compilation support (arm64 -> arm32, x64 -> x86) [David]
- Version resiliency testing [Simon]
- SDK support for cross-architecture compilation [Anton]
- Add Arcade support for building R2R images with CG2 [Anton]
- Perfmap generation and integration into perfcollect
- PGO block count handling
- Support using Crossgen2 for compiling System.Private.CoreLib in CoreCLR build Support using Crossgen2 for compiling System.Private.CoreLib in CoreCLR build #43810
- More options for performing JIT. AB#1244349
Testing
- Crossgen2 tests pass > 99%
- Crossgen2 outerloop tests pass > 99%
- Stress tests passing > 99%
- Set of methods compiled by CG2 matches CG1 (via R2RDump), Use R2RDump to validate that the set of methods compiled with CG2 matches CG1 #50124
- At runtime, set of methods executed as R2R matches CG1 (via ETW), Use ETW to verify that runtime execution runs the same R2R methods for CG1 vs. CG2 #50125
- x86 / arm32 Testing (improved CI testing from minimal)
Performance
- Small file compilation performance improvements
- Define real-world code sign-off criteria (WPF, Powershell startup, ASP.NET startup / throughput, eg)
- Compiler throughput >= Crossgen1
- R2R image sizes <= Crossgen1 [Simon]
Rollout (and Exit Criteria)
- S.P.C AOT'd with CG2 [Tomas]
- Add library test CI run using CG2-compiled framework, Implement support for library tests using CG2-compiled framework and add the corresponding CI run #50127
- Libraries AOT'd with CG2 (staggered by architecture?)
- Switch SDK default to CG2
- Remove crossgen from runtime repo
Metadata
Metadata
Assignees
Labels
Bottom Up WorkNot part of a theme, epic, or user storyNot part of a theme, epic, or user storyUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.area-crossgen2-coreclr