Beispiel #1
0
 public UtcNodeFactory(
     CompilerTypeSystemContext context,
     CompilationModuleGroup compilationModuleGroup,
     IEnumerable <ModuleDesc> inputModules,
     IEnumerable <ModuleDesc> inputMetadataOnlyAssemblies,
     string metadataFile,
     string outputFile,
     UTCNameMangler nameMangler,
     bool buildMRT,
     bool emitStackTraceMetadata,
     bool disableExceptionMessages,
     bool allowInvokeThunks,
     DictionaryLayoutProvider dictionaryLayoutProvider,
     ImportedNodeProvider importedNodeProvider)
     : base(context,
            compilationModuleGroup,
            PickMetadataManager(context, compilationModuleGroup, inputModules, inputMetadataOnlyAssemblies, metadataFile, emitStackTraceMetadata, disableExceptionMessages, allowInvokeThunks),
            NewEmptyInteropStubManager(context, compilationModuleGroup),
            nameMangler,
            new AttributeDrivenLazyGenericsPolicy(),
            null,
            dictionaryLayoutProvider,
            importedNodeProvider)
 {
     CreateHostedNodeCaches();
     CompilationUnitPrefix = nameMangler.CompilationUnitPrefix;
     ThreadStaticsIndex    = new ThreadStaticsIndexNode(nameMangler.GetCurrentModuleTlsIndexPrefix());
     targetPrefix          = context.Target.Architecture == TargetArchitecture.X86 ? "_" : "";
     TLSDirectory          = new ThreadStaticsDirectoryNode(targetPrefix);
     TlsStart       = new ExternSymbolNode(targetPrefix + "_tls_start");
     TlsEnd         = new ExternSymbolNode(targetPrefix + "_tls_end");
     LoopHijackFlag = new LoopHijackFlagNode();
     this.buildMRT  = buildMRT;
 }
Beispiel #2
0
 public CompilationBuilder UseGenericDictionaryLayoutProvider(DictionaryLayoutProvider provider)
 {
     _dictionaryLayoutProvider = provider;
     return(this);
 }