Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Wrighton <davidwr@microsoft.com>2017-11-30 01:07:09 +0300
committerDavid Wrighton <davidwr@microsoft.com>2017-11-30 01:07:09 +0300
commita0d449b381fd508331915dbcb1042345759218b5 (patch)
tree917eab765da87c514fc288f69502e351998a072d /src/ILCompiler.CppCodeGen
parent01bad0bd5b8e0c2ba2f5a485a4b6fdff4daf7698 (diff)
Ordinal Multifile support
- Add ordinal import mechanism to ready to run header - Add concept of various different types of export to nodes (Now nodes can be exported by symbol name or by ordinal) - Abstraction of how nodes from exported modules are imported (ImportedNodeProvider) - Import/Export table nodes (MrtProcessedImportAddressTable, MrtProcessedExportAddressTable) - Runtime decodable jump stubs - Tweaks to floating dictionary computation to behave correctly when no floating section is present, and to tolerate floating sections without version numbers - Not integrated with the open source version of the compiler, but the basic nodes and necessary infra are present Also - Allow a TypeSystemContext to specify the module in which the Canon types are logically located - Overrideable apis for the CompilerTypeSystemContext to allow customization of the set of methods logically present on Enums and Delegates - New apis on CompilationModuleGroup to allow more granular policy to be specified about what is to be compiled - Adjust GetName helper for MethodSignature to produce names that are more unique - Fix bug in floating generic dictionary implementation where it assumed that the floating section was present in all dictionaries - ARM64 indirect jump generation (with a assert to be disabled when it is debugged) [tfs-changeset: 1682436]
Diffstat (limited to 'src/ILCompiler.CppCodeGen')
-rw-r--r--src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs b/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs
index fe2ad3afc..baf0339aa 100644
--- a/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs
+++ b/src/ILCompiler.CppCodeGen/src/Compiler/DependencyAnalysis/CppCodegenNodeFactory.cs
@@ -12,7 +12,15 @@ namespace ILCompiler.DependencyAnalysis
{
public CppCodegenNodeFactory(CompilerTypeSystemContext context, CompilationModuleGroup compilationModuleGroup, MetadataManager metadataManager,
InteropStubManager interopStubManager, NameMangler nameMangler, VTableSliceProvider vtableSliceProvider, DictionaryLayoutProvider dictionaryLayoutProvider)
- : base(context, compilationModuleGroup, metadataManager, interopStubManager, nameMangler, new LazyGenericsDisabledPolicy(), vtableSliceProvider, dictionaryLayoutProvider)
+ : base(context,
+ compilationModuleGroup,
+ metadataManager,
+ interopStubManager,
+ nameMangler,
+ new LazyGenericsDisabledPolicy(),
+ vtableSliceProvider,
+ dictionaryLayoutProvider,
+ new ImportedNodeProviderThrowing())
{
}
@@ -20,7 +28,7 @@ namespace ILCompiler.DependencyAnalysis
protected override IMethodNode CreateMethodEntrypointNode(MethodDesc method)
{
- if (CompilationModuleGroup.ContainsMethodBody(method))
+ if (CompilationModuleGroup.ContainsMethodBody(method, false))
{
return new CppMethodCodeNode(method);
}