Crossgen2 - precompile generic instantiations (#2154)
authorJan Vorlicek <janvorli@microsoft.com>
Mon, 27 Jan 2020 20:42:34 +0000 (21:42 +0100)
committerGitHub <noreply@github.com>
Mon, 27 Jan 2020 20:42:34 +0000 (21:42 +0100)
commit992a295f631f40508cd54f48010ebe9553fadd6b
tree0f1c5344868f6fd0d2b8136da53eb85bd6b21bff
parent0515878d1eb4fb544ae0219c436c299746fdb2b4
Crossgen2 - precompile generic instantiations (#2154)

* Crossgen2 - precompile generic instantiations

This change adds precompilation of all methods on generic instantiations
of types that are encountered during compilation. In my powershell
startup time experiments, it shaved off about 110 methods from the ones
that needed to be jitted at runtime and looking at e.g.
System.Private.CoreLib.dll precompilation result, it is much closer to
the version we get from the old crossgen now.

* Create a new node type to carry the method dependecies
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/AllMethodsOnTypeNode.cs [new file with mode: 0644]
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/TypeFixupSignature.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRunCodegenNodeFactory.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/ILCompiler.ReadyToRun.csproj