Move p/invoke pregeneration out of single-exe branch (dotnet/coreclr#27673)
authorFadi Hanna <fadim@microsoft.com>
Tue, 5 Nov 2019 22:51:35 +0000 (14:51 -0800)
committerJan Kotas <jkotas@microsoft.com>
Tue, 5 Nov 2019 22:51:35 +0000 (14:51 -0800)
commit0c51654b549be41baf81187e919ab862ebea4cf5
tree95a627307b16fa86c82a288b4766dcca0ca39ff0
parent9a3e6ace11eafcc7f36438a79ed722984b628ade
Move p/invoke pregeneration out of single-exe branch (dotnet/coreclr#27673)

* Move p/invoke pregeneration out of single-exe branch

This is just xcopy of the src/tools/crossgen2 directory in the single-exe branch with David's profile data changes omitted. I had to fix a `using` directive in one of the files because a `using` keyword the branch was using got deleted in master.

I don't know if there's a way to do this kind of selective merge in git, but I don't particularly care. Most of the interesting history for these files is on the CoreRT side anyway.

Also including the change to prestub.cpp that unlocks using the generated p/invokes.

* Disable ILStub emission for pinvokes until they are fixed to be non-shared

Commit migrated from https://github.com/dotnet/coreclr/commit/bee443dc0e8fc6a74a87bd207df63db3dfbd6f14
19 files changed:
src/coreclr/src/tools/crossgen2/Common/JitInterface/CorInfoImpl.Intrinsics.cs
src/coreclr/src/tools/crossgen2/Common/JitInterface/CorInfoImpl.cs
src/coreclr/src/tools/crossgen2/Common/TypeSystem/Ecma/EcmaSignatureParser.cs
src/coreclr/src/tools/crossgen2/Common/TypeSystem/IL/EcmaMethodIL.cs
src/coreclr/src/tools/crossgen2/Common/TypeSystem/IL/Stubs/PInvokeILCodeStreams.cs [new file with mode: 0644]
src/coreclr/src/tools/crossgen2/Common/TypeSystem/Interop/IL/MarshalHelpers.cs [new file with mode: 0644]
src/coreclr/src/tools/crossgen2/Common/TypeSystem/Interop/IL/Marshaller.cs [new file with mode: 0644]
src/coreclr/src/tools/crossgen2/Common/TypeSystem/Interop/InteropTypes.cs [new file with mode: 0644]
src/coreclr/src/tools/crossgen2/Common/TypeSystem/Interop/MarshalAsDescriptor.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/CompilationModuleGroup.ReadyToRun.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilation.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/ReadyToRunSingleAssemblyCompilationModuleGroup.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/SingleMethodCompilationModuleGroup.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/IL/ReadyToRunILProvider.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/IL/Stubs/PInvokeILEmitter.cs [new file with mode: 0644]
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/ILCompiler.ReadyToRun.csproj
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Interop/IL/Marshaller.ReadyToRun.cs [new file with mode: 0644]
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs
src/coreclr/src/vm/prestub.cpp