public virtual void AttachToDependencyGraph(DependencyAnalysisFramework.DependencyAnalyzerBase <NodeFactory> graph) { ReadyToRunHeader = new ReadyToRunHeaderNode(Target); graph.AddRoot(ReadyToRunHeader, "ReadyToRunHeader is always generated"); graph.AddRoot(new ModulesSectionNode(Target), "ModulesSection is always generated"); graph.AddRoot(GCStaticsRegion, "GC StaticsRegion is always generated"); graph.AddRoot(ThreadStaticsRegion, "ThreadStaticsRegion is always generated"); graph.AddRoot(EagerCctorTable, "EagerCctorTable is always generated"); graph.AddRoot(ModuleManagerIndirection, "ModuleManagerIndirection is always generated"); graph.AddRoot(DispatchMapTable, "DispatchMapTable is always generated"); graph.AddRoot(FrozenSegmentRegion, "FrozenSegmentRegion is always generated"); ReadyToRunHeader.Add(ReadyToRunSectionType.GCStaticRegion, GCStaticsRegion, GCStaticsRegion.StartSymbol, GCStaticsRegion.EndSymbol); ReadyToRunHeader.Add(ReadyToRunSectionType.ThreadStaticRegion, ThreadStaticsRegion, ThreadStaticsRegion.StartSymbol, ThreadStaticsRegion.EndSymbol); ReadyToRunHeader.Add(ReadyToRunSectionType.EagerCctor, EagerCctorTable, EagerCctorTable.StartSymbol, EagerCctorTable.EndSymbol); ReadyToRunHeader.Add(ReadyToRunSectionType.ModuleManagerIndirection, ModuleManagerIndirection, ModuleManagerIndirection); ReadyToRunHeader.Add(ReadyToRunSectionType.InterfaceDispatchTable, DispatchMapTable, DispatchMapTable.StartSymbol); ReadyToRunHeader.Add(ReadyToRunSectionType.FrozenObjectRegion, FrozenSegmentRegion, FrozenSegmentRegion.StartSymbol, FrozenSegmentRegion.EndSymbol); MetadataManager.AddToReadyToRunHeader(ReadyToRunHeader); MetadataManager.AttachToDependencyGraph(graph); _compilationModuleGroup.AddCompilationRoots(new RootingServiceProvider(graph, this)); }
public void AttachToDependencyGraph(DependencyAnalysisFramework.DependencyAnalyzerBase <NodeFactory> graph) { graph.AddRoot(GCStaticsRegion, "GC StaticsRegion is always generated"); graph.AddRoot(ThreadStaticsRegion, "ThreadStaticsRegion is always generated"); graph.AddRoot(StringTable, "StringTable is always generated"); graph.AddRoot(DispatchMapTable, "DispatchMapTable is always generated"); }
private void AddWellKnownType(WellKnownType wellKnownType, DependencyAnalysisFramework.DependencyAnalyzerBase <NodeFactory> graph) { var type = TypeSystemContext.GetWellKnownType(wellKnownType); var typeNode = ConstructedTypeSymbol(type); graph.AddRoot(typeNode, "Enables CPP codegen"); }
private void AddWellKnownTypes(DependencyAnalysisFramework.DependencyAnalyzerBase <NodeFactory> graph) { AddWellKnownType(WellKnownType.Void, graph); AddWellKnownType(WellKnownType.Boolean, graph); AddWellKnownType(WellKnownType.Char, graph); AddWellKnownType(WellKnownType.SByte, graph); AddWellKnownType(WellKnownType.Byte, graph); AddWellKnownType(WellKnownType.Int16, graph); AddWellKnownType(WellKnownType.UInt16, graph); AddWellKnownType(WellKnownType.Int32, graph); AddWellKnownType(WellKnownType.UInt32, graph); AddWellKnownType(WellKnownType.Int64, graph); AddWellKnownType(WellKnownType.UInt64, graph); AddWellKnownType(WellKnownType.IntPtr, graph); AddWellKnownType(WellKnownType.UIntPtr, graph); AddWellKnownType(WellKnownType.Single, graph); AddWellKnownType(WellKnownType.Double, graph); }
public void AttachToDependencyGraph(DependencyAnalysisFramework.DependencyAnalyzerBase <NodeFactory> graph) { ReadyToRunHeader = new ReadyToRunHeaderNode(Target); graph.AddRoot(ReadyToRunHeader, "ReadyToRunHeader is always generated"); graph.AddRoot(new ModulesSectionNode(Target), "ModulesSection is always generated"); graph.AddRoot(GCStaticsRegion, "GC StaticsRegion is always generated"); graph.AddRoot(ThreadStaticsRegion, "ThreadStaticsRegion is always generated"); graph.AddRoot(StringTable, "StringTable is always generated"); graph.AddRoot(EagerCctorTable, "EagerCctorTable is always generated"); graph.AddRoot(ModuleManagerIndirection, "ModuleManagerIndirection is always generated"); graph.AddRoot(DispatchMapTable, "DispatchMapTable is always generated"); ReadyToRunHeader.Add(ReadyToRunSectionType.GCStaticRegion, GCStaticsRegion, GCStaticsRegion.StartSymbol, GCStaticsRegion.EndSymbol); ReadyToRunHeader.Add(ReadyToRunSectionType.ThreadStaticRegion, ThreadStaticsRegion, ThreadStaticsRegion.StartSymbol, ThreadStaticsRegion.EndSymbol); ReadyToRunHeader.Add(ReadyToRunSectionType.StringTable, StringTable, StringTable.StartSymbol, StringTable.EndSymbol); ReadyToRunHeader.Add(ReadyToRunSectionType.EagerCctor, EagerCctorTable, EagerCctorTable.StartSymbol, EagerCctorTable.EndSymbol); ReadyToRunHeader.Add(ReadyToRunSectionType.ModuleManagerIndirection, ModuleManagerIndirection, ModuleManagerIndirection); ReadyToRunHeader.Add(ReadyToRunSectionType.InterfaceDispatchTable, DispatchMapTable, DispatchMapTable.StartSymbol); MetadataManager.AddToReadyToRunHeader(ReadyToRunHeader); MetadataManager.AttachToDependencyGraph(graph); }
public override void AttachToDependencyGraph(DependencyAnalysisFramework.DependencyAnalyzerBase <NodeFactory> graph) { AddWellKnownTypes(graph); base.AttachToDependencyGraph(graph); }