Crossgen2 support for static virtual method resolution (take 2) (#87438)
authorTomáš Rylek <trylek@microsoft.com>
Tue, 8 Aug 2023 18:43:50 +0000 (20:43 +0200)
committerGitHub <noreply@github.com>
Tue, 8 Aug 2023 18:43:50 +0000 (20:43 +0200)
commitcb083648a06e30b15fee6e6c638678ec2e03c261
treee5cee1eba38f4c4d19b00ed75280df2e8be22a00
parent261e3a40cd9faa240da82aacd8d821469703e339
Crossgen2 support for static virtual method resolution (take 2) (#87438)

This change adds SVM resolution support to Crossgen2. We still resort to
runtime JIT in case we cannot resolve the SVM call at compile time (typically for
canonical generic methods); some of these cases are just due to current limitations
of the JIT interface and can be fixed in the future.

Thanks

Tomas
src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs
src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/DelegateCtorSignature.cs
src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/GCRefMapNode.cs
src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/Import.cs
src/coreclr/tools/aot/ILCompiler.ReadyToRun/Compiler/DependencyAnalysis/ReadyToRun/MethodFixupSignature.cs
src/coreclr/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs
src/coreclr/vm/methodtable.cpp
src/tests/Loader/classloader/StaticVirtualMethods/NegativeTestCases/MethodBodyOnUnrelatedType.ilproj
src/tests/Loader/classloader/StaticVirtualMethods/Regression/GitHub_70385.il
src/tests/readytorun/tests/main.cs
src/tests/readytorun/tests/test.cs