Make JIT configuration a single-init static (#2208)
authorMichal Strehovský <MichalStrehovsky@users.noreply.github.com>
Sun, 26 Jan 2020 17:52:08 +0000 (18:52 +0100)
committerJan Kotas <jkotas@microsoft.com>
Sun, 26 Jan 2020 17:52:08 +0000 (09:52 -0800)
commitae7591678c31c2dda9fbaf155f6066e1399fd3f3
treec379a5f4324e459505a72a46effc98af4d4427c9
parent63aae23303594dcd21acf2d58670d5f4180d066d
Make JIT configuration a single-init static (#2208)

This fixes two things:
* UseJitPath on compilation builder doesn't make sense for any other backends this file is shared with (CppCodegen/LLVM). Moving that to ReadyToRunCodenCompilationBuilder.
* JitConfigProvider made it look like a configurable JIT path and configurable COMPlus RyuJIT options are a thing, but they're in fact per process and can only be initialized once (first is an implementation limitation in CorInfoImpl, the second is a RyuJIT limitation). Making the config class static+throwing for double-initialization to make this very clear.
src/coreclr/src/tools/Common/Compiler/CompilationBuilder.cs
src/coreclr/src/tools/Common/JitInterface/CorInfoImpl.cs
src/coreclr/src/tools/Common/JitInterface/JitConfigProvider.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilation.cs
src/coreclr/src/tools/crossgen2/ILCompiler.ReadyToRun/Compiler/ReadyToRunCodegenCompilationBuilder.cs
src/coreclr/src/tools/crossgen2/crossgen2/Program.cs