Skip to content

Epic: Replace Crossgen with Crossgen2 #43653

@mangod9

Description

@mangod9

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

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bottom Up WorkNot part of a theme, epic, or user storyUser StoryA single user-facing feature. Can be grouped under an epic.area-crossgen2-coreclr

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions