diff options
author | dotnet-bot <dotnet-bot@microsoft.com> | 2018-08-10 01:06:37 +0300 |
---|---|---|
committer | dotnet-bot <dotnet-bot@microsoft.com> | 2018-08-10 01:06:37 +0300 |
commit | 38f5ba0886a2cd3c0d9171f624528e5a0a2cafcb (patch) | |
tree | a4f22884b54d2b00f3cff5546e835a870c273c5c /src/ILCompiler.Compiler | |
parent | 1b63b12bf1c3a898ee10f9eb8a838f369f4303db (diff) |
Add size-optimization switch passing from ilc to NUTC to CoreRT in PureNative mode
[tfs-changeset: 1710061]
Diffstat (limited to 'src/ILCompiler.Compiler')
-rw-r--r-- | src/ILCompiler.Compiler/src/Compiler/DependencyAnalysis/UtcNodeFactory.cs | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/ILCompiler.Compiler/src/Compiler/DependencyAnalysis/UtcNodeFactory.cs b/src/ILCompiler.Compiler/src/Compiler/DependencyAnalysis/UtcNodeFactory.cs index 2b7db44a7..66716587d 100644 --- a/src/ILCompiler.Compiler/src/Compiler/DependencyAnalysis/UtcNodeFactory.cs +++ b/src/ILCompiler.Compiler/src/Compiler/DependencyAnalysis/UtcNodeFactory.cs @@ -59,7 +59,7 @@ namespace ILCompiler return null; } - private static MetadataManager PickMetadataManager(CompilerTypeSystemContext context, CompilationModuleGroup compilationModuleGroup, IEnumerable<ModuleDesc> inputModules, IEnumerable<ModuleDesc> inputMetadataOnlyAssemblies, string metadataFile) + private static MetadataManager PickMetadataManager(CompilerTypeSystemContext context, CompilationModuleGroup compilationModuleGroup, IEnumerable<ModuleDesc> inputModules, IEnumerable<ModuleDesc> inputMetadataOnlyAssemblies, string metadataFile, bool emitStackTraceMetadata, bool disableExceptionMessages) { if (metadataFile == null) { @@ -67,7 +67,28 @@ namespace ILCompiler } else { - return new PrecomputedMetadataManager(compilationModuleGroup, context, FindMetadataDescribingModuleInInputSet(inputModules), inputModules, inputMetadataOnlyAssemblies, ReadBytesFromFile(metadataFile), new UtcStackTraceEmissionPolicy(), new NoManifestResourceBlockingPolicy()); + // Set Policies according to passed arguments + StackTraceEmissionPolicy stackTraceEmissionPolicy; + if (emitStackTraceMetadata) + { + stackTraceEmissionPolicy = new UtcStackTraceEmissionPolicy(); + } + else + { + stackTraceEmissionPolicy = new NoStackTraceEmissionPolicy(); + } + + ManifestResourceBlockingPolicy resourceBlockingPolicy; + if (disableExceptionMessages) + { + resourceBlockingPolicy = new FrameworkStringResourceBlockingPolicy(); + } + else + { + resourceBlockingPolicy = new NoManifestResourceBlockingPolicy(); + } + + return new PrecomputedMetadataManager(compilationModuleGroup, context, FindMetadataDescribingModuleInInputSet(inputModules), inputModules, inputMetadataOnlyAssemblies, ReadBytesFromFile(metadataFile), stackTraceEmissionPolicy , resourceBlockingPolicy); } } @@ -86,11 +107,13 @@ namespace ILCompiler string outputFile, UTCNameMangler nameMangler, bool buildMRT, + bool emitStackTraceMetadata, + bool disableExceptionMessages, DictionaryLayoutProvider dictionaryLayoutProvider, ImportedNodeProvider importedNodeProvider) : base(context, compilationModuleGroup, - PickMetadataManager(context, compilationModuleGroup, inputModules, inputMetadataOnlyAssemblies, metadataFile), + PickMetadataManager(context, compilationModuleGroup, inputModules, inputMetadataOnlyAssemblies, metadataFile, emitStackTraceMetadata, disableExceptionMessages), NewEmptyInteropStubManager(context, compilationModuleGroup), nameMangler, new AttributeDrivenLazyGenericsPolicy(), |