diff options
author | David Wrighton <davidwr@microsoft.com> | 2017-05-17 04:42:43 +0300 |
---|---|---|
committer | David Wrighton <davidwr@microsoft.com> | 2017-05-17 04:42:43 +0300 |
commit | 0fb20786300a52505a011d84b44ff6ebc5475556 (patch) | |
tree | 5326a3029e3ac2c06abe43c559b394dac94fc72b /src/ILCompiler.CppCodeGen | |
parent | d762c0277e666f85c3cbe60ca73a772ae31cd8b4 (diff) |
Lazy Generics
- Instead of performing lazy lookups at individual use sites, perform a single lazy lookup to get a dictionary, and then use normal canonical lookups from there
- Shares logic with USG dictionary acquisition, and with normal canonical codegen
- Add LazyGenericPolicy nob to CoreRT environment to control policy
Universal Shared Generics Changes
- Fixup EETypeNode generation for USG types
- Consider TemplateTypeLayout necessary for all universal generic canon types
- Use RhAllocLocal2 which returns a byref to the first field of the "local" object instead of the start of the object.
- Tweak USG field invoke map generation to not stop compilation. Still needs to be implemented.
[tfs-changeset: 1658670]
Diffstat (limited to 'src/ILCompiler.CppCodeGen')
-rw-r--r-- | src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs b/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs index aac834c7d..ddd5e2fa8 100644 --- a/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs +++ b/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs @@ -10,7 +10,7 @@ namespace ILCompiler.DependencyAnalysis { public sealed class CppCodegenNodeFactory : NodeFactory { - public CppCodegenNodeFactory(CompilerTypeSystemContext context, CompilationModuleGroup compilationModuleGroup, MetadataManager metadataManager, NameMangler nameMangler) + public CppCodegenNodeFactory(CompilerTypeSystemContext context, CompilationModuleGroup compilationModuleGroup, MetadataManager metadataManager, NameMangler nameMangler, new LazyGenericsDisabledPolicy()) : base(context, compilationModuleGroup, metadataManager, nameMangler) { } |