diff options
author | Michal Strehovský <MichalStrehovsky@users.noreply.github.com> | 2017-07-27 20:16:05 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-27 20:16:05 +0300 |
commit | 1e97bb92da03992449c6042fadb8547322d8e47c (patch) | |
tree | 43743697e3899a8ddbfb7c05b456815dcb28f120 /src/System.Private.Jit | |
parent | 391008691f165a7cc25c99d564203ac3ac3363a6 (diff) |
Inline generic dictionary lookup (#4121)
Avoid R2R helper calls in most of the generic dictionary lookups. I'm
deliberately not enabling this for:
* Generic lookups for static bases (these are more complicated as there
might be `.cctor` triggering involved - needs RyuJIT changes)
* Generic lookups for delegate creation (this is also pretty complicated - needs RyuJIT changes)
Diffstat (limited to 'src/System.Private.Jit')
-rw-r--r-- | src/System.Private.Jit/src/Internal/Runtime/JitSupport/JitCompilation.cs | 18 | ||||
-rw-r--r-- | src/System.Private.Jit/src/System.Private.Jit.csproj | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/System.Private.Jit/src/Internal/Runtime/JitSupport/JitCompilation.cs b/src/System.Private.Jit/src/Internal/Runtime/JitSupport/JitCompilation.cs index 212aa98b9..85eb8a03c 100644 --- a/src/System.Private.Jit/src/Internal/Runtime/JitSupport/JitCompilation.cs +++ b/src/System.Private.Jit/src/Internal/Runtime/JitSupport/JitCompilation.cs @@ -102,6 +102,24 @@ namespace ILCompiler return true; } + public bool NeedsRuntimeLookup(ReadyToRunHelperId lookupKind, object targetOfLookup) + { + // The current plan seem to be to copy paste from ILCompiler.Compilation, but that's not a sustainable plan + throw new NotImplementedException(); + } + + public ISymbolNode ComputeConstantLookup(ReadyToRunHelperId lookupKind, object targetOfLookup) + { + // The current plan seem to be to copy paste from ILCompiler.Compilation, but that's not a sustainable plan + throw new NotImplementedException(); + } + + public GenericDictionaryLookup ComputeGenericLookup(MethodDesc contextMethod, ReadyToRunHelperId lookupKind, object targetOfLookup) + { + // The current plan seem to be to copy paste from ILCompiler.Compilation, but that's not a sustainable plan + throw new NotImplementedException(); + } + public DelegateCreationInfo GetDelegateCtor(TypeDesc delegateType, MethodDesc target, bool followVirtualDispatch) { return DelegateCreationInfo.Create(delegateType, target, NodeFactory, followVirtualDispatch); diff --git a/src/System.Private.Jit/src/System.Private.Jit.csproj b/src/System.Private.Jit/src/System.Private.Jit.csproj index e8a31aaf1..8d303aa3e 100644 --- a/src/System.Private.Jit/src/System.Private.Jit.csproj +++ b/src/System.Private.Jit/src/System.Private.Jit.csproj @@ -116,6 +116,7 @@ <Compile Include="$(ILCompilerBasePath)\Compiler\DependencyAnalysis\Relocation.cs" /> <Compile Include="$(ILCompilerBasePath)\Compiler\DelegateCreationInfo.cs" /> <Compile Include="$(ILCompilerBasePath)\Compiler\JitHelper.cs" /> + <Compile Include="$(ILCompilerBasePath)\Compiler\GenericDictionaryLookup.cs" /> <Compile Include="$(ILCompilerBasePath)\Compiler\SimdHelper.cs" /> <Compile Include="$(ILCompilerBasePath)\Compiler\MethodExtensions.cs" /> <Compile Include="$(ILCompilerBasePath)\Compiler\MemoryHelper.cs" /> |