summaryrefslogtreecommitdiff
path: root/src/utilcode/jithost.cpp
AgeCommit message (Collapse)AuthorFilesLines
2016-03-07Reapply change 1578859: Add a new set of APIs for JIT configuration.Pat Gavlin1-2/+2
SuperPMI has been udpated to accommodate this change, and should no longer crash when run using a JIT built with these changes. [tfs-changeset: 1582144]
2016-02-25Roll back change 1578859 on behalf of pagavlin. Change broke SuperPMI.dotnet-bot1-2/+2
[tfs-changeset: 1578925]
2016-02-25Add a new set of APIs for JIT configuration.Pat Gavlin1-2/+2
These APIs accommodate the retrieval of config values using the JIT interface rather than the utilcode library. All configuration options are now initialized upon the first call to compileMethod. The values of configuration options are available off of an ambient JitConfig object. This also changed `JitHost::get*ConfigValue` to use the `EEConfig_default` policy instead of `REGUTIL_default` in order to avoid breaking a small set of JIT config options available in release builds that were using the former. This change is exceedingly unlikely to adversely affect the behavior of other JIT config options that were originally fetched using `REGUTIL_default`, since values for these options should not be present any locations searched by `EEConfig_default` that are not searched by `REGUTIL_default` (namely config files). [tfs-changeset: 1578859]
2016-02-24Fix build break - add precompiled headerJan Kotas1-0/+2
2016-02-23Expose a hosting interface for the JIT.Pat Gavlin1-0/+75
This is the first significant step towards removing the JIT's dependence on utilcode. This change introduces a new interface, `ICorJitHost`, that allows functionality that would usually be provided by the OS to be overridden by the program that is hosting the JIT. At the moment, this is limited to memory allocation and configuration value (e.g. environment variable) access. If the JIT exports a function named `jitStartup`, an instance of the `ICorJitHost` must be provided via that function before the first call to `getJit`. The VM and other implementors of the JIT interface have been updated accordingly. Most implementors should use the common implementation of `ICorJitHost` (cleverly named `JitHost`) in utilcode which respects the CLR's hosting policy. Note that this change does not update RyuJIT (or any other JITs) to use any of the functionality exposed by `ICorJitHost`; that work is left for future changes. [tfs-changeset: 1578176]