Compiler\Dataflow\ReflectionMethodBodyScanner.cs (7)
19using DependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencyList;
20using DependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencySink;
23using NodeFactory = ILCompiler.DependencyAnalysis.NodeFactory;
32private readonly NodeFactory _factory;
103private ReflectionMethodBodyScanner(NodeFactory factory, FlowAnnotations annotations, Logger logger, MessageOrigin origin)
128public static DependencyList ScanAndProcessReturnValue(NodeFactory factory, FlowAnnotations annotations, Logger logger, MethodIL methodIL, out List<(MethodDesc OwningMethod, INodeWithRuntimeDeterminedDependencies Dependency)> runtimeDependencies)
142public static void AddTypeGetTypeDataflowDependencies(DependencySink dependencies, NodeFactory factory, FlowAnnotations flowAnnotations, Logger logger, MetadataType type)
Compiler\DependencyAnalysis\CustomAttributeBasedDependencyAlgorithm.cs (19)
12using DependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencyList;
13using DependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencySink;
14using IDependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.IDependencySink;
15using DependencyListEntry = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencyListEntry;
16using CombinedDependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.CombinedDependencyList;
17using CombinedDependencyListEntry = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.CombinedDependencyListEntry;
28private static IMethodNode GetMetadataApiDependency(NodeFactory factory, ReadOnlySpan<byte> entityName, ReadOnlySpan<byte> propertyName)
31private static IMethodNode GetMetadataApiDependency(NodeFactory factory, ReadOnlySpan<byte> entityName)
34public static void AddDependenciesDueToCustomAttributes(DependencySink dependencies, NodeFactory factory, EcmaMethod method)
62public static void AddDependenciesDueToCustomAttributes(DependencySink dependencies, NodeFactory factory, EcmaType type)
77public static void AddDependenciesDueToCustomAttributes(DependencySink dependencies, NodeFactory factory, EcmaField field)
83public static void AddDependenciesDueToCustomAttributes(DependencySink dependencies, NodeFactory factory, PropertyPseudoDesc property)
88public static void AddDependenciesDueToCustomAttributes(DependencySink dependencies, NodeFactory factory, EventPseudoDesc @event)
93public static void AddDependenciesDueToCustomAttributes(DependencySink dependencies, NodeFactory factory, EcmaAssembly assembly)
102private static void AddDependenciesDueToCustomAttributes(DependencySink dependencies, object condition, NodeFactory factory, EcmaModule module, CustomAttributeHandleCollection attributeHandles, TypeSystemEntity parent)
164private static bool AddDependenciesFromCustomAttributeBlob(IDependencySink dependencies, NodeFactory factory, TypeDesc attributeType, CustomAttributeValue<TypeDesc> value)
195private static bool AddDependenciesFromField(IDependencySink dependencies, NodeFactory factory, TypeDesc attributeType, string fieldName)
218private static bool AddDependenciesFromPropertySetter(IDependencySink dependencies, NodeFactory factory, TypeDesc attributeType, string propertyName)
261private static bool AddDependenciesFromCustomAttributeArgument(IDependencySink dependencies, NodeFactory factory, TypeDesc type, object value)
Compiler\DependencyAnalysis\DelegateTargetVirtualMethodNode.cs (12)
16public class DelegateTargetVirtualMethodNode : DependencyNodeCore<NodeFactory>
28protected override string GetName(NodeFactory factory)
33public override void AddStaticDependencies(DependencySink sink, NodeFactory factory) { }
38public override void AddConditionalDependencies(DependencySink sink, NodeFactory factory) { }
39public override void SearchDynamicDependencies(List<DependencyNodeCore<NodeFactory>> markedNodes, int firstNode, DependencySink sink, NodeFactory factory) { }
42public sealed class ReflectableVirtualMethodImplNode : DependencyNodeCore<NodeFactory>
56protected override string GetName(NodeFactory factory)
61public override void AddStaticDependencies(DependencySink sink, NodeFactory factory) { }
67public override void AddConditionalDependencies(DependencySink sink, NodeFactory factory)
75public override void SearchDynamicDependencies(List<DependencyNodeCore<NodeFactory>> markedNodes, int firstNode, DependencySink sink, NodeFactory factory) { }
Compiler\DependencyAnalysis\DynamicDependencyAttributesOnEntityNode.cs (9)
27public class DynamicDependencyAttributesOnEntityNode : DependencyNodeCore<NodeFactory>
37public static void AddDependenciesDueToDynamicDependencyAttribute(IDependencySink dependencies, NodeFactory factory, EcmaMethod method)
45public static void AddDependenciesDueToDynamicDependencyAttribute(IDependencySink dependencies, NodeFactory factory, EcmaField field)
53public override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
77NodeFactory factory,
236protected override string GetName(NodeFactory factory)
245public override void AddConditionalDependencies(DependencySink sink, NodeFactory context) { }
246public override void SearchDynamicDependencies(List<DependencyNodeCore<NodeFactory>> markedNodes, int firstNode, DependencySink sink, NodeFactory context) { }
Compiler\DependencyAnalysis\EETypeNode.cs (30)
86public EETypeNode(NodeFactory factory, TypeDesc type)
190protected bool MightHaveInterfaceDispatchMap(NodeFactory factory)
200protected override string GetName(NodeFactory factory) => this.GetMangledName(factory.NameMangler);
202public override bool ShouldSkipEmittingObjectNode(NodeFactory factory)
207public virtual ISymbolNode NodeForLinkage(NodeFactory factory)
214protected override ObjectNodeSection GetDehydratedSection(NodeFactory factory)
316public override void AddConditionalDependencies(DependencySink sink, NodeFactory factory)
589protected override void ComputeNonRelocationBasedDependencies(DependencySink sink, NodeFactory factory)
672protected override ObjectData GetDehydratableData(NodeFactory factory, bool relocsOnly)
748private void OutputFlags(NodeFactory factory, ref ObjectDataBuilder objData, bool relocsOnly)
815protected virtual ISymbolNode GetBaseTypeNode(NodeFactory factory)
820protected virtual FrozenRuntimeTypeNode GetFrozenRuntimeTypeNode(NodeFactory factory)
826protected virtual ISymbolNode GetNonNullableValueTypeArrayElementTypeNode(NodeFactory factory)
831private ISymbolNode GetRelatedTypeNode(NodeFactory factory)
866protected virtual void OutputRelatedType(NodeFactory factory, ref ObjectDataBuilder objData)
880private void OutputVirtualSlots(NodeFactory factory, ref ObjectDataBuilder objData, TypeDesc implType, TypeDesc declType, bool relocsOnly)
1008protected virtual IEETypeNode GetInterfaceTypeNode(NodeFactory factory, TypeDesc interfaceType)
1013private void OutputInterfaceMap(NodeFactory factory, ref ObjectDataBuilder objData)
1044private void OutputFinalizerMethod(NodeFactory factory, ref ObjectDataBuilder objData)
1057protected void OutputTypeManagerIndirection(NodeFactory factory, ref ObjectDataBuilder objData)
1065protected void OutputWritableData(NodeFactory factory, ref ObjectDataBuilder objData)
1083private void OutputSealedVTable(NodeFactory factory, bool relocsOnly, ref ObjectDataBuilder objData)
1100protected void OutputGenericInstantiationDetails(NodeFactory factory, ref ObjectDataBuilder objData)
1170private void OutputFunctionPointerParameters(NodeFactory factory, ref ObjectDataBuilder objData)
1186private void OutputDispatchMap(NodeFactory factory, ref ObjectDataBuilder objData)
1198protected override void OnMarked(NodeFactory context)
1236public override ObjectNodeSection GetSection(NodeFactory factory)
1246public override bool ShouldSkipEmittingObjectNode(NodeFactory factory) => _type.ShouldSkipEmittingObjectNode(factory);
1248public override ObjectData GetData(NodeFactory factory, bool relocsOnly = false)
1274protected override string GetName(NodeFactory factory) => this.GetMangledName(factory.NameMangler);
Compiler\DependencyAnalysis\ExternalTypeMapNode.cs (9)
34public override void AddConditionalDependencies(DependencySink sink, NodeFactory context)
55public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
70public override void SearchDynamicDependencies(List<DependencyNodeCore<NodeFactory>> markedNodes, int firstNode, DependencySink sink, NodeFactory context) { }
71protected override string GetName(NodeFactory context) => $"External type map: {TypeMapGroup}";
81private IEnumerable<(string Name, IEETypeNode target)> GetMarkedEntries(NodeFactory factory)
98private static IEETypeNode GetEffectiveTrimTargetType(NodeFactory factory, TypeDesc trimmingTargetType)
101public Vertex CreateTypeMap(NodeFactory factory, NativeWriter writer, Section section, INativeFormatTypeReferenceProvider externalReferences)
119public IExternalTypeMapNode ToAnalysisBasedNode(NodeFactory factory)
Compiler\DependencyAnalysis\GenericDefinitionEETypeNode.cs (12)
16public GenericDefinitionEETypeNode(NodeFactory factory, TypeDesc type) : base(factory, type)
23public override void AddConditionalDependencies(DependencySink sink, NodeFactory factory) { }
25public override ISymbolNode NodeForLinkage(NodeFactory factory)
30protected override ObjectData GetDehydratableData(NodeFactory factory, bool relocsOnly = false)
67public ReflectionInvisibleGenericDefinitionEETypeNode(NodeFactory factory, TypeDesc type) : base(factory, type)
71public override bool ShouldSkipEmittingObjectNode(NodeFactory factory)
76protected override void ComputeNonRelocationBasedDependencies(DependencySink sink, NodeFactory factory)
85public ReflectionVisibleGenericDefinitionEETypeNode(NodeFactory factory, TypeDesc type) : base(factory, type)
89public override bool ShouldSkipEmittingObjectNode(NodeFactory factory)
94protected override FrozenRuntimeTypeNode GetFrozenRuntimeTypeNode(NodeFactory factory)
99protected override string GetName(NodeFactory factory) => this.GetMangledName(factory.NameMangler) + " reflection visible";
101protected override void ComputeNonRelocationBasedDependencies(DependencySink sink, NodeFactory factory)
Compiler\DependencyAnalysis\GenericDictionaryNode.cs (17)
21private readonly NodeFactory _factory;
31public abstract DictionaryLayoutNode GetDictionaryLayout(NodeFactory factory);
45protected override ObjectNodeSection GetDehydratedSection(NodeFactory factory)
48public GenericDictionaryNode(NodeFactory factory)
53protected override ObjectData GetDehydratableData(NodeFactory factory, bool relocsOnly = false)
77protected virtual void EmitDataInternal(ref ObjectDataBuilder builder, NodeFactory factory, bool fixedLayoutOnly)
83protected sealed override string GetName(NodeFactory factory)
112public override DictionaryLayoutNode GetDictionaryLayout(NodeFactory factory)
119public override bool ShouldSkipEmittingObjectNode(NodeFactory factory) => GetDictionaryLayout(factory).IsEmpty;
121protected override void ComputeNonRelocationBasedDependencies(DependencySink sink, NodeFactory factory)
146public override void AddConditionalDependencies(DependencySink sink, NodeFactory factory)
166public TypeGenericDictionaryNode(TypeDesc owningType, NodeFactory factory)
201public override void AddConditionalDependencies(DependencySink sink, NodeFactory factory)
206protected override void ComputeNonRelocationBasedDependencies(DependencySink sink, NodeFactory factory)
245public override DictionaryLayoutNode GetDictionaryLayout(NodeFactory factory)
250protected override void EmitDataInternal(ref ObjectDataBuilder builder, NodeFactory factory, bool fixedLayoutOnly)
269public MethodGenericDictionaryNode(MethodDesc owningMethod, NodeFactory factory)
Compiler\DependencyAnalysis\GenericLookupResult.cs (38)
75public abstract ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation);
115public virtual void EmitDictionaryEntry(ref ObjectDataBuilder builder, NodeFactory factory, GenericLookupResultContext dictionary, GenericDictionaryNode dictionaryNode)
139public abstract NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory);
142public virtual IEnumerable<DependencyNodeCore<NodeFactory>> NonRelocDependenciesFromUsage(NodeFactory factory)
144return Array.Empty<DependencyNodeCore<NodeFactory>>();
200public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
223public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
259public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
281public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
317public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
339public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
375public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
402public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
438public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
467public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
503public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
523public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
559public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
587public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
625public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
659public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
710public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext context, bool isConcreteInstantiation)
751public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
788public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
808public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
845public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
864public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
901public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
921public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
957public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
976public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
1009public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
1029public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
1068public override IEnumerable<DependencyNodeCore<NodeFactory>> NonRelocDependenciesFromUsage(NodeFactory factory)
1084public override ISymbolNode GetTarget(NodeFactory factory, GenericLookupResultContext dictionary, bool isConcreteInstantiation)
1156public override NativeLayoutVertexNode TemplateDictionaryNode(NodeFactory factory)
Compiler\DependencyAnalysis\ImportedNodeProvider.cs (10)
14public abstract IEETypeNode ImportedEETypeNode(NodeFactory factory, TypeDesc type);
15public abstract ISortableSymbolNode ImportedGCStaticNode(NodeFactory factory, MetadataType type);
16public abstract ISortableSymbolNode ImportedNonGCStaticNode(NodeFactory factory, MetadataType type);
17public abstract ISortableSymbolNode ImportedMethodDictionaryNode(NodeFactory factory, MethodDesc method);
18public abstract IMethodNode ImportedMethodCodeNode(NodeFactory factory, MethodDesc method, bool unboxingStub);
23public override IEETypeNode ImportedEETypeNode(NodeFactory factory, TypeDesc type)
28public override ISortableSymbolNode ImportedGCStaticNode(NodeFactory factory, MetadataType type)
33public override ISortableSymbolNode ImportedNonGCStaticNode(NodeFactory factory, MetadataType type)
38public override ISortableSymbolNode ImportedMethodDictionaryNode(NodeFactory factory, MethodDesc method)
43public override IMethodNode ImportedMethodCodeNode(NodeFactory factory, MethodDesc method, bool unboxingStub)
Compiler\DependencyAnalysis\NativeLayoutVertexNode.cs (118)
28public abstract class NativeLayoutVertexNode : DependencyNodeCore<NodeFactory>
42public override void AddConditionalDependencies(DependencySink sink, NodeFactory context)
46public override void SearchDynamicDependencies(List<DependencyNodeCore<NodeFactory>> markedNodes, int firstNode, DependencySink sink, NodeFactory context)
50protected override void OnMarked(NodeFactory context)
55public abstract Vertex WriteVertex(NodeFactory factory);
57protected NativeWriter GetNativeWriter(NodeFactory factory)
109protected override string GetName(NodeFactory factory) => "MethodEntryVertex_" + factory.NameMangler.GetMangledMethodName(_method);
111public NativeLayoutMethodEntryVertexNode(NodeFactory factory, MethodDesc method, MethodEntryFlags flags)
128public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
155public override Vertex WriteVertex(NodeFactory factory)
227private Vertex GetContainingTypeVertex(NodeFactory factory)
241protected virtual IMethodNode GetMethodEntrypointNode(NodeFactory factory)
254protected override string GetName(NodeFactory factory) => "NativeLayoutMethodSignatureVertexNode " + _signature.GetName();
256public NativeLayoutMethodSignatureVertexNode(NodeFactory factory, Internal.TypeSystem.MethodSignature signature)
265public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
273public override Vertex WriteVertex(NodeFactory factory)
307protected override string GetName(NodeFactory factory) => "NativeLayoutTypeSignatureVertexNode: " + _type.ToString();
309public static NativeLayoutTypeSignatureVertexNode NewTypeSignatureVertexNode(NodeFactory factory, TypeDesc type)
342public NativeLayoutParameterizedTypeSignatureVertexNode(NodeFactory factory, TypeDesc type) : base(type)
346public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
350public override Vertex WriteVertex(NodeFactory factory)
386public NativeLayoutFunctionPointerTypeSignatureVertexNode(NodeFactory factory, TypeDesc type) : base(type)
390public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
394public override Vertex WriteVertex(NodeFactory factory)
407public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
410public override Vertex WriteVertex(NodeFactory factory)
433public NativeLayoutInstantiatedTypeSignatureVertexNode(NodeFactory factory, TypeDesc type) : base(type)
443public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
450public override Vertex WriteVertex(NodeFactory factory)
470public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
480public override Vertex WriteVertex(NodeFactory factory)
495public NativeLayoutExternalReferenceVertexNode(NodeFactory factory, ISymbolNode symbol)
500protected override string GetName(NodeFactory factory) => "NativeLayoutISymbolNodeReferenceVertexNode " + _symbol.GetMangledName(factory.NameMangler);
502public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
507public override Vertex WriteVertex(NodeFactory factory)
520protected override string GetName(NodeFactory factory) => "NativeLayoutPlacedSignatureVertexNode";
526public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
530public override Vertex WriteVertex(NodeFactory factory)
549protected override string GetName(NodeFactory factory) => "NativeLayoutPlacedVertexSequenceVertexNode";
555public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
560public override Vertex WriteVertex(NodeFactory factory)
584protected override string GetName(NodeFactory factory) => "NativeLayoutPlacedVertexSequenceVertexNode";
590public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
598public override Vertex WriteVertex(NodeFactory factory)
618protected override string GetName(NodeFactory factory) => "NativeLayoutTemplateMethodSignatureVertexNode_" + factory.NameMangler.GetMangledMethodName(_method);
637public NativeLayoutTemplateMethodSignatureVertexNode(NodeFactory factory, MethodDesc method)
642public override Vertex WriteVertex(NodeFactory factory)
650protected override IMethodNode GetMethodEntrypointNode(NodeFactory factory)
658public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
682public NativeLayoutDictionarySignatureNode(NodeFactory nodeFactory, TypeSystemEntity owningMethodOrType)
700private GenericContextKind ContextKind(NodeFactory factory)
721public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
735public override Vertex WriteVertex(NodeFactory factory)
769protected override string GetName(NodeFactory factory) => $"Dictionary layout signature for {_owningMethodOrType}";
776protected override string GetName(NodeFactory factory) => "NativeLayoutTemplateMethodLayoutVertexNode" + factory.NameMangler.GetMangledMethodName(_method);
778public NativeLayoutTemplateMethodLayoutVertexNode(NodeFactory factory, MethodDesc method)
787public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
814public override Vertex WriteVertex(NodeFactory factory)
849protected override string GetName(NodeFactory factory) => "NativeLayoutTemplateTypeLayoutVertexNode_" + factory.NameMangler.GetMangledTypeName(_type);
851public NativeLayoutTemplateTypeLayoutVertexNode(NodeFactory factory, TypeDesc type)
859private static TypeDesc GetActualTemplateTypeForType(NodeFactory factory, TypeDesc type)
875private ISymbolNode GetStaticsNode(NodeFactory context, out BagElementKind staticsBagKind)
885private ISymbolNode GetThreadStaticsNode(NodeFactory context, out BagElementKind staticsBagKind)
895public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
965public override void AddConditionalDependencies(DependencySink sink, NodeFactory context) { }
967public override Vertex WriteVertex(NodeFactory factory)
1048public abstract override void AddStaticDependencies(DependencySink sink, NodeFactory context);
1049protected abstract Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory);
1052public override Vertex WriteVertex(NodeFactory factory)
1066public NativeLayoutTypeSignatureBasedGenericDictionarySlotNode(NodeFactory factory, TypeDesc type)
1073protected sealed override string GetName(NodeFactory factory) => NodeTypeName + factory.NameMangler.GetMangledTypeName(_type);
1075public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1085protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1093public NativeLayoutTypeHandleGenericDictionarySlotNode(NodeFactory factory, TypeDesc type) : base(factory, type)
1104public NativeLayoutUnwrapNullableGenericDictionarySlotNode(NodeFactory factory, TypeDesc type) : base(factory, type)
1115public NativeLayoutAllocateObjectGenericDictionarySlotNode(NodeFactory factory, TypeDesc type) : base(factory, type)
1126public NativeLayoutThreadStaticBaseIndexDictionarySlotNode(NodeFactory factory, TypeDesc type) : base(factory, type)
1137public NativeLayoutDefaultConstructorGenericDictionarySlotNode(NodeFactory factory, TypeDesc type) : base(factory, type)
1151public NativeLayoutStaticsGenericDictionarySlotNode(NodeFactory factory, TypeDesc type)
1160protected sealed override string GetName(NodeFactory factory) => NodeTypeName + factory.NameMangler.GetMangledTypeName(_type);
1163public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1173protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1181public NativeLayoutGcStaticsGenericDictionarySlotNode(NodeFactory factory, TypeDesc type) : base(factory, type)
1190public NativeLayoutNonGcStaticsGenericDictionarySlotNode(NodeFactory factory, TypeDesc type) : base(factory, type)
1202public NativeLayoutInterfaceDispatchGenericDictionarySlotNode(NodeFactory factory, MethodDesc method)
1208protected sealed override string GetName(NodeFactory factory) => "NativeLayoutInterfaceDispatchGenericDictionarySlotNode_" + factory.NameMangler.GetMangledMethodName(_method);
1211public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1227protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1243public NativeLayoutGvmDispatchGenericDictionarySlotNode(NodeFactory factory, MethodDesc method)
1249protected sealed override string GetName(NodeFactory factory) => "NativeLayoutGvmDispatchGenericDictionarySlotNode_" + factory.NameMangler.GetMangledMethodName(_method);
1253public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1273protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1283public NativeLayoutMethodDictionaryGenericDictionarySlotNode(NodeFactory factory, MethodDesc method)
1289protected sealed override string GetName(NodeFactory factory) => "NativeLayoutMethodDictionaryGenericDictionarySlotNode_" + factory.NameMangler.GetMangledMethodName(_method);
1291public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1310protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1326protected sealed override string GetName(NodeFactory factory) => "NativeLayoutFieldLdTokenGenericDictionarySlotNode_" + factory.NameMangler.GetMangledFieldName(_field);
1330public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1344protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1358public NativeLayoutMethodLdTokenGenericDictionarySlotNode(NodeFactory factory, MethodDesc method)
1363protected sealed override string GetName(NodeFactory factory) => "NativeLayoutMethodLdTokenGenericDictionarySlotNode_" + factory.NameMangler.GetMangledMethodName(_method);
1367public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1391protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1412protected sealed override string GetName(NodeFactory factory) =>
1432public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1434DependencyNodeCore<NodeFactory> constrainedMethodDescriptorNode;
1469protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1502public WrappedMethodEntryVertexNode(NodeFactory factory, MethodDesc method, bool unboxingStub, IMethodNode functionPointerNode) :
1509protected override IMethodNode GetMethodEntrypointNode(NodeFactory factory)
1514protected sealed override string GetName(NodeFactory factory) => "WrappedMethodEntryVertexNodeForDictionarySlot_" + (_unboxingStub ? "Unboxing_" : "") + factory.NameMangler.GetMangledMethodName(_method);
1518public NativeLayoutMethodEntrypointGenericDictionarySlotNode(NodeFactory factory, MethodDesc method, IMethodNode functionPointerNode, bool unboxingStub)
1524protected sealed override string GetName(NodeFactory factory) => "NativeLayoutMethodEntrypointGenericDictionarySlotNode_" + (_wrappedNode._unboxingStub ? "Unboxing_" : "") + factory.NameMangler.GetMangledMethodName(_method);
1526public sealed override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
1544protected sealed override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
1553public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
1557protected override string GetName(NodeFactory context) => "NativeLayoutNotSupportedDictionarySlotNode";
1559protected override Vertex WriteSignatureVertex(NativeWriter writer, NodeFactory factory)
Compiler\DependencyAnalysis\ReadyToRunGenericHelperNode.cs (15)
34public bool HandlesInvalidEntries(NodeFactory factory)
40public ReadyToRunGenericHelperNode(NodeFactory factory, ReadyToRunHelperId helperId, object target, TypeSystemEntity dictionaryOwner)
52public static GenericLookupResult GetLookupSignature(NodeFactory factory, ReadyToRunHelperId id, object target)
100protected sealed override string GetName(NodeFactory factory) => this.GetMangledName(factory.NameMangler);
103protected sealed override void OnMarked(NodeFactory factory)
123private bool TriggersLazyStaticConstructor(NodeFactory factory)
132NodeFactory factory,
136DependencyNodeCore<NodeFactory>? otherReasonNode)
202DependencyNodeCore<NodeFactory>? otherReasonNode)
215private static IMethodNode GetBadSlotHelper(NodeFactory factory)
232protected override void ComputeNonRelocationBasedDependencies(DependencySink sink, NodeFactory factory)
243foreach (DependencyNodeCore<NodeFactory> dependency in _lookupSignature.NonRelocDependenciesFromUsage(factory))
257public override void AddConditionalDependencies(DependencySink sink, NodeFactory factory)
352public ReadyToRunGenericLookupFromDictionaryNode(NodeFactory factory, ReadyToRunHelperId helperId, object target, TypeSystemEntity dictionaryOwner)
374public ReadyToRunGenericLookupFromTypeNode(NodeFactory factory, ReadyToRunHelperId helperId, object target, TypeSystemEntity dictionaryOwner)
Compiler\DependencyAnalysis\ScannedMethodNode.cs (13)
12using CombinedDependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.CombinedDependencyList;
21public class ScannedMethodNode : DependencyNodeCore<NodeFactory>, IMethodBodyNode
50public void InitializeDependencies(NodeFactory factory, (DependencyList, CombinedDependencyList) dependencies, TypeSystemException scanningException = null)
79public override void AddStaticDependencies(DependencySink sink, NodeFactory factory)
88public override void AddConditionalDependencies(DependencySink sink, NodeFactory factory)
98public void AddRuntimeDeterminedStaticDependencies(DependencySink sink, NodeFactory factory, MethodDesc concreteMethod)
106public void AddRuntimeDeterminedConditionalDependencies(DependencySink sink, NodeFactory factory, MethodDesc concreteMethod)
117NodeFactory factory,
119DependencyNodeCore<NodeFactory> dependency,
120DependencyNodeCore<NodeFactory>? otherReasonNode)
136protected override string GetName(NodeFactory factory) => this.GetMangledName(factory.NameMangler);
138public override void SearchDynamicDependencies(List<DependencyNodeCore<NodeFactory>> markedNodes, int firstNode, DependencySink sink, NodeFactory factory) { }
Compiler\DependencyAnalysis\Target_ARM\ARMReadyToRunGenericHelperNode.cs (4)
24protected void EmitDictionaryLookup(NodeFactory factory, ref ARMEmitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly)
56protected sealed override void EmitCode(NodeFactory factory, ref ARMEmitter encoder, bool relocsOnly)
212protected virtual void EmitLoadGenericContext(NodeFactory factory, ref ARMEmitter encoder, bool relocsOnly)
220protected override void EmitLoadGenericContext(NodeFactory factory, ref ARMEmitter encoder, bool relocsOnly)
Compiler\DependencyAnalysis\Target_ARM64\ARM64ReadyToRunGenericHelperNode.cs (4)
24protected void EmitDictionaryLookup(NodeFactory factory, ref ARM64Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly)
55protected sealed override void EmitCode(NodeFactory factory, ref ARM64Emitter encoder, bool relocsOnly)
211protected virtual void EmitLoadGenericContext(NodeFactory factory, ref ARM64Emitter encoder, bool relocsOnly)
219protected override void EmitLoadGenericContext(NodeFactory factory, ref ARM64Emitter encoder, bool relocsOnly)
Compiler\DependencyAnalysis\Target_LoongArch64\LoongArch64ReadyToRunGenericHelperNode.cs (4)
24protected void EmitDictionaryLookup(NodeFactory factory, ref LoongArch64Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly)
55protected sealed override void EmitCode(NodeFactory factory, ref LoongArch64Emitter encoder, bool relocsOnly)
213protected virtual void EmitLoadGenericContext(NodeFactory factory, ref LoongArch64Emitter encoder, bool relocsOnly)
221protected override void EmitLoadGenericContext(NodeFactory factory, ref LoongArch64Emitter encoder, bool relocsOnly)
Compiler\DependencyAnalysis\Target_RiscV64\RiscV64ReadyToRunGenericHelperNode.cs (4)
24protected void EmitDictionaryLookup(NodeFactory factory, ref RiscV64Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly)
54protected sealed override void EmitCode(NodeFactory factory, ref RiscV64Emitter encoder, bool relocsOnly)
210protected virtual void EmitLoadGenericContext(NodeFactory factory, ref RiscV64Emitter encoder, bool relocsOnly)
218protected override void EmitLoadGenericContext(NodeFactory factory, ref RiscV64Emitter encoder, bool relocsOnly)
Compiler\DependencyAnalysis\Target_X64\X64ReadyToRunGenericHelperNode.cs (4)
24protected void EmitDictionaryLookup(NodeFactory factory, ref X64Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly)
57protected sealed override void EmitCode(NodeFactory factory, ref X64Emitter encoder, bool relocsOnly)
220protected virtual void EmitLoadGenericContext(NodeFactory factory, ref X64Emitter encoder, bool relocsOnly)
228protected override void EmitLoadGenericContext(NodeFactory factory, ref X64Emitter encoder, bool relocsOnly)
Compiler\DependencyAnalysis\Target_X86\X86ReadyToRunGenericHelperNode.cs (4)
16protected void EmitDictionaryLookup(NodeFactory factory, ref X86Emitter encoder, Register context, Register result, GenericLookupResult lookup, bool relocsOnly)
50protected sealed override void EmitCode(NodeFactory factory, ref X86Emitter encoder, bool relocsOnly)
214protected virtual void EmitLoadGenericContext(NodeFactory factory, ref X86Emitter encoder, bool relocsOnly)
227protected override void EmitLoadGenericContext(NodeFactory factory, ref X86Emitter encoder, bool relocsOnly)
Compiler\DescriptorMarker.cs (5)
17using DependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencyList;
32private NodeFactory _factory;
37public DescriptorMarker(Logger logger, NodeFactory factory, Stream documentStream, string xmlDocumentLocation, IReadOnlyDictionary<string, bool> featureSwitchValues)
44public DescriptorMarker(Logger logger, NodeFactory factory, Stream documentStream, ManifestResource resource, ModuleDesc resourceAssembly, string xmlDocumentLocation, IReadOnlyDictionary<string, bool> featureSwitchValues)
338public static DependencyList GetDependencies(Logger logger, NodeFactory factory, Stream documentStream, ManifestResource resource, ModuleDesc resourceAssembly, string xmlDocumentLocation, IReadOnlyDictionary<string, bool> featureSwitchValues)
Compiler\ILScanner.cs (21)
33DependencyAnalyzerBase<NodeFactory> dependencyGraph,
53protected override void ComputeDependencyNodeDependencies(List<DependencyNodeCore<NodeFactory>> obj)
59foreach (DependencyNodeCore<NodeFactory> dependency in obj)
221internal ILScanResults(DependencyAnalyzerBase<NodeFactory> graph, NodeFactory factory)
280foreach (DependencyNodeCore<NodeFactory> n in MarkedNodes)
291public ScannedVTableProvider(ImmutableArray<DependencyNodeCore<NodeFactory>> markedNodes)
335public ScannedDictionaryLayoutProvider(NodeFactory factory, ImmutableArray<DependencyNodeCore<NodeFactory>> markedNodes)
357private static GenericLookupResult[] OptimizeSlots(NodeFactory factory, IEnumerable<GenericLookupResult> slots, out GenericLookupResult[] discarded)
461public ScannedDevirtualizationManager(NodeFactory factory, ImmutableArray<DependencyNodeCore<NodeFactory>> markedNodes)
594static List<MethodDesc> BuildVTable(NodeFactory factory, TypeDesc currentType, TypeDesc implType, List<MethodDesc> vtable)
638private static bool CanAssumeWholeProgramViewOnTypeUse(NodeFactory factory, TypeDesc implementingType, DefType baseType)
814public ScannedInliningPolicy(CompilationModuleGroup baseGroup, ImmutableArray<DependencyNodeCore<NodeFactory>> markedNodes)
856public ScannedMethodImportationErrorProvider(ImmutableArray<DependencyNodeCore<NodeFactory>> markedNodes)
883public ScannedInlinedThreadStatics(NodeFactory factory, ImmutableArray<DependencyNodeCore<NodeFactory>> markedNodes)
940public ScannedPreinitializationPolicy(PreinitializationManager preinitManager, ImmutableArray<DependencyNodeCore<NodeFactory>> markedNodes)
991public ScannedReadOnlyPolicy(ImmutableArray<DependencyNodeCore<NodeFactory>> markedNodes)
1022public ScannedTypeMapManager(NodeFactory factory)
Compiler\MetadataManager.cs (46)
18using DependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencyList;
19using DependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencySink;
20using IDependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.IDependencySink;
21using IConditionalDependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.IConditionalDependencySink;
22using CombinedDependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.CombinedDependencyList;
23using CombinedDependencyListEntry = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.CombinedDependencyListEntry;
139public void AttachToDependencyGraph(DependencyAnalyzerBase<NodeFactory> graph)
151public virtual void AddToReadyToRunHeader(ReadyToRunHeaderNode header, NodeFactory nodeFactory, ExternalReferencesTableNode commonFixupsTableNode)
252protected virtual void Graph_NewMarkedNode(DependencyNodeCore<NodeFactory> obj)
457public void GetDependenciesDueToGenericDictionary(DependencySink dependencies, NodeFactory factory, MethodDesc method)
465public void AddConditionalDependenciesDueToGenericDictionary(DependencySink dependencies, NodeFactory factory, MethodDesc method)
478public void GetDependenciesDueToReflectability(IDependencySink dependencies, NodeFactory factory, MethodDesc method)
511public void GetDependenciesDueToReflectability(DependencySink dependencies, NodeFactory factory, FieldDesc field)
533NodeFactory factory,
535DependencyNodeCore<NodeFactory>? otherReasonNode = null)
540protected virtual void GetMetadataDependenciesDueToReflectability(IDependencySink dependencies, NodeFactory factory, MethodDesc method)
547public virtual void AddNativeLayoutMetadataDependencies(DependencySink dependencies, NodeFactory factory, MethodDesc method)
552protected virtual void GetMetadataDependenciesDueToReflectability(DependencySink dependencies, NodeFactory factory, FieldDesc field)
562public virtual void GetDependenciesDueToEETypePresence(DependencySink dependencies, NodeFactory factory, TypeDesc type)
572internal virtual void GetDependenciesDueToModuleUse(IDependencySink dependencies, NodeFactory factory, ModuleDesc module)
577protected virtual void GetMetadataDependenciesDueToReflectability(DependencySink dependencies, NodeFactory factory, TypeDesc type)
584public virtual void GetConditionalDependenciesDueToEETypePresence(DependencySink dependencies, NodeFactory factory, TypeDesc type, bool allocated)
598public virtual void GetDependenciesDueToLdToken(DependencySink dependencies, NodeFactory factory, MethodDesc method)
607public virtual void GetDependenciesDueToLdToken(DependencySink dependencies, NodeFactory factory, FieldDesc field)
613public void GetDependenciesDueToDelegateCreation(DependencySink dependencies, NodeFactory factory, TypeDesc delegateType, MethodDesc target)
624public virtual void GetConditionalDependenciesDueToDelegateCreation(DependencySink dependencies, NodeFactory factory, TypeDesc delegateType, MethodDesc target)
633public virtual void GetDependenciesForOverridingMethod(DependencySink dependencies, NodeFactory factory, MethodDesc decl, MethodDesc impl)
646public void GetDependenciesDueToMethodCodePresence(IDependencySink dependencies, NodeFactory factory, MethodDesc method, MethodIL methodIL)
653public virtual void GetConditionalDependenciesDueToMethodCodePresence(IConditionalDependencySink dependencies, NodeFactory factory, MethodDesc method)
659protected virtual void GetDependenciesDueToMethodCodePresenceInternal(IDependencySink dependencies, NodeFactory factory, MethodDesc method, MethodIL methodIL)
701protected void EnsureMetadataGenerated(NodeFactory factory)
715protected abstract void ComputeMetadata(NodeFactory factory,
727NodeFactory factory,
985public byte[] GetMetadataBlob(NodeFactory factory)
991public IEnumerable<MetadataMapping<MetadataType>> GetTypeDefinitionMapping(NodeFactory factory)
997public IEnumerable<MetadataMapping<MethodDesc>> GetMethodMapping(NodeFactory factory)
1003public int GetMetadataHandleForMethod(NodeFactory factory, MethodDesc method)
1017public IEnumerable<MetadataMapping<FieldDesc>> GetFieldMapping(NodeFactory factory)
1023public int GetMetadataHandleForField(NodeFactory factory, FieldDesc field)
1037public IEnumerable<StackTraceMapping> GetStackTraceMapping(NodeFactory factory)
1043public IEnumerable<ReflectionStackTraceMapping> GetReflectionStackTraceMappings(NodeFactory factory)
1230public bool IsManifestResourceBlocked(NodeFactory factory, Internal.TypeSystem.Ecma.EcmaModule module, string resourceName)
1279public virtual void GetDependenciesDueToAccess(IDependencySink dependencies, NodeFactory factory, MethodIL methodIL, TypeDesc accessedType)
1283public virtual void GetDependenciesDueToAccess(IDependencySink dependencies, NodeFactory factory, MethodIL methodIL, MethodDesc calledMethod)
1287public virtual void GetDependenciesDueToAccess(IDependencySink dependencies, NodeFactory factory, MethodIL methodIL, FieldDesc writtenField)
1291public virtual DependencyList GetDependenciesForCustomAttribute(NodeFactory factory, MethodDesc attributeCtor, CustomAttributeValue decodedValue, TypeSystemEntity parent)
Compiler\MethodBodyDeduplicator.cs (4)
37public void DeduplicatePass(NodeFactory factory, Dictionary<ISymbolNode, ISymbolNode> previousSymbolRemapping, Dictionary<ISymbolNode, ISymbolNode> symbolRemapping)
74public MethodInternKey(IMethodBodyNode node, NodeFactory factory, Dictionary<ISymbolNode, ISymbolNode> interner)
129private readonly NodeFactory _factory;
133public MethodInternComparer(NodeFactory factory, Dictionary<ISymbolNode, ISymbolNode> interner, bool genericsOnly)
Compiler\MstatObjectDumper.cs (8)
58protected override void DumpObjectNode(NodeFactory factory, ObjectNode node, ObjectData objectData)
66_types.LoadConstantI4(AppendMangledName(DependencyNodeCore<NodeFactory>.GetNodeName(node, factory)));
72DependencyNodeCore<NodeFactory>.GetNodeName(node, factory),
83_fieldRvas.LoadConstantI4(AppendMangledName(DependencyNodeCore<NodeFactory>.GetNodeName(node, factory)));
110public override void ReportFoldedNode(NodeFactory factory, ObjectNode originalNode, ISymbolNode targetNode)
121private void DumpFrozenRegion(NodeFactory factory)
130_frozenObjects.LoadConstantI4(AppendMangledName(DependencyNodeCore<NodeFactory>.GetNodeName(frozenObject, factory)));
144private void DumpResourceData(NodeFactory factory, ResourceDataNode resourceData)
Compiler\ObjectDumper.cs (4)
16void IObjectDumper.DumpObjectNode(NodeFactory factory, ObjectNode node, ObjectData objectData) => DumpObjectNode(factory, node, objectData);
17protected abstract void DumpObjectNode(NodeFactory factory, ObjectNode node, ObjectData objectData);
19public virtual void ReportFoldedNode(NodeFactory factory, ObjectNode originalNode, ISymbolNode targetNode) { }
58protected override void DumpObjectNode(NodeFactory factory, ObjectNode node, ObjectData objectData)
Compiler\RootingHelpers.cs (16)
12using DependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencyList;
13using DependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencySink;
14using IDependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.IDependencySink;
139NodeFactory factory,
154NodeFactory factory,
157DependencyNodeCore<NodeFactory> otherReasonNode)
171NodeFactory factory,
174DependencyNodeCore<NodeFactory>? otherReasonNode)
241public static bool TryAddDependenciesForReflectedField(IDependencySink dependencies, NodeFactory factory, FieldDesc field, string reason)
293NodeFactory factory,
308NodeFactory factory,
311DependencyNodeCore<NodeFactory> otherReasonNode)
325NodeFactory factory,
328DependencyNodeCore<NodeFactory>? otherReasonNode)
375DependencyNodeCore<NodeFactory> dependency,
377DependencyNodeCore<NodeFactory>? otherReasonNode)
Compiler\TypePreinit.cs (45)
15using CombinedDependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.CombinedDependencyList;
16using DependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencySink;
2225void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory);
2227bool GetRawData(NodeFactory factory, out object data);
2236void WriteContent(ref ObjectDataBuilder builder, ISymbolNode thisNode, NodeFactory factory);
2238void AddConditionalDependencies(DependencySink dependencies, NodeFactory factory);
2297public abstract void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory);
2299public abstract bool GetRawData(NodeFactory factory, out object data);
2389public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2394public override bool GetRawData(NodeFactory factory, out object data)
2487public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2508public override bool GetRawData(NodeFactory factory, out object data)
2534public override bool GetRawData(NodeFactory factory, out object data)
2540public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2655public override bool GetRawData(NodeFactory factory, out object data)
2661public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2711public override bool GetRawData(NodeFactory factory, out object data)
2717public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2836public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2841public override bool GetRawData(NodeFactory factory, out object data)
2871public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2876public override bool GetRawData(NodeFactory factory, out object data)
2893public override bool GetRawData(NodeFactory factory, out object data)
2907public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2938public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2943public override bool GetRawData(NodeFactory factory, out object data)
2986public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
2991public override bool GetRawData(NodeFactory factory, out object data)
3072public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
3077public override bool GetRawData(NodeFactory factory, out object data)
3173public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
3179public override bool GetRawData(NodeFactory factory, out object data)
3242public override bool GetRawData(NodeFactory factory, out object data)
3255public virtual void AddConditionalDependencies(DependencySink dependencies, NodeFactory factory)
3272private DelegateCreationInfo GetDelegateCreationInfo(NodeFactory factory)
3282public override void AddConditionalDependencies(DependencySink dependencies, NodeFactory factory)
3291public void WriteContent(ref ObjectDataBuilder builder, ISymbolNode thisNode, NodeFactory factory)
3339public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
3407public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
3412public void WriteContent(ref ObjectDataBuilder builder, ISymbolNode thisNode, NodeFactory factory)
3454public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
3517public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
3522public override bool GetRawData(NodeFactory factory, out object data)
3591public override void WriteFieldData(ref ObjectDataBuilder builder, NodeFactory factory)
3596public void WriteContent(ref ObjectDataBuilder builder, ISymbolNode thisNode, NodeFactory factory)
Compiler\UnmanagedEntryPointsRootProvider.cs (8)
45private sealed class UnmanagedEntryPointsNode : DependencyNodeCore<NodeFactory>
110public override void AddStaticDependencies(DependencySink sink, NodeFactory context)
128public override void AddConditionalDependencies(DependencySink sink, NodeFactory context)
149public override void SearchDynamicDependencies(List<DependencyNodeCore<NodeFactory>> markedNodes, int firstNode, DependencySink sink, NodeFactory context) { }
151private void AddMethodStaticDependencies(DependencySink sink, NodeFactory context, EcmaMethod method, string reason, Utf8String exportName)
158private IMethodNode GetMethodEntrypointAndAddAlias(NodeFactory context, EcmaMethod method, Utf8String exportName)
185protected override string GetName(NodeFactory context) => $"Unmanaged entry points: {_module}";
Compiler\UsageBasedMetadataManager.cs (41)
22using CombinedDependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.CombinedDependencyList;
26using DependencyList = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencyList;
27using DependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.DependencySink;
28using IDependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.IDependencySink;
29using IConditionalDependencySink = ILCompiler.DependencyAnalysisFramework.DependencyNodeCore<ILCompiler.DependencyAnalysis.NodeFactory>.IConditionalDependencySink;
120protected override void Graph_NewMarkedNode(DependencyNodeCore<NodeFactory> obj)
230protected override void ComputeMetadata(NodeFactory factory,
244protected override void GetMetadataDependenciesDueToReflectability(IDependencySink dependencies, NodeFactory factory, MethodDesc method)
249public override void AddNativeLayoutMetadataDependencies(DependencySink dependencies, NodeFactory factory, MethodDesc method)
263protected override void GetMetadataDependenciesDueToReflectability(DependencySink dependencies, NodeFactory factory, FieldDesc field)
268internal override void GetDependenciesDueToModuleUse(IDependencySink dependencies, NodeFactory factory, ModuleDesc module)
295protected override void GetMetadataDependenciesDueToReflectability(DependencySink dependencies, NodeFactory factory, TypeDesc type)
399public override void GetDependenciesDueToEETypePresence(DependencySink dependencies, NodeFactory factory, TypeDesc type)
421public override void GetConditionalDependenciesDueToEETypePresence(DependencySink dependencies, NodeFactory factory, TypeDesc type, bool allocated)
429dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
452dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
467dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
494dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
525dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
533public override void GetDependenciesDueToLdToken(DependencySink dependencies, NodeFactory factory, FieldDesc field)
541public override void GetDependenciesDueToLdToken(DependencySink dependencies, NodeFactory factory, MethodDesc method)
559public override void GetConditionalDependenciesDueToDelegateCreation(DependencySink dependencies, NodeFactory factory, TypeDesc delegateType, MethodDesc target)
567dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
574dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
580dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
589dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
596dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
602dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
610public override void GetDependenciesForOverridingMethod(DependencySink dependencies, NodeFactory factory, MethodDesc decl, MethodDesc impl)
627protected override void GetDependenciesDueToMethodCodePresenceInternal(IDependencySink dependencies, NodeFactory factory, MethodDesc method, MethodIL methodIL)
678public override void GetConditionalDependenciesDueToMethodCodePresence(IConditionalDependencySink dependencies, NodeFactory factory, MethodDesc method)
686dependencies.Add(new DependencyNodeCore<NodeFactory>.CombinedDependencyListEntry(
694NodeFactory factory,
696DependencyNodeCore<NodeFactory>? otherReasonNode)
729public override void GetDependenciesDueToAccess(IDependencySink dependencies, NodeFactory factory, MethodIL methodIL, FieldDesc writtenField)
764public override void GetDependenciesDueToAccess(IDependencySink dependencies, NodeFactory factory, MethodIL methodIL, TypeDesc accessedType)
773public override void GetDependenciesDueToAccess(IDependencySink dependencies, NodeFactory factory, MethodIL methodIL, MethodDesc calledMethod)
782public override DependencyList GetDependenciesForCustomAttribute(NodeFactory factory, MethodDesc attributeCtor, CustomAttributeValue decodedValue, TypeSystemEntity parent)
925private void AddDataflowDependency(IDependencySink dependencies, NodeFactory factory, MethodIL methodIL, string reason)
1006private readonly NodeFactory _factory;
1008public GeneratedTypesAndCodeMetadataPolicy(MetadataBlockingPolicy blockingPolicy, NodeFactory factory)
Compiler\VirtualMethodCallHelper.cs (5)
13public static int GetDefaultInterfaceMethodSlot(NodeFactory factory, MethodDesc method, TypeDesc implType, DefType interfaceOnDefinition, bool countDictionarySlots = true)
35public static int GetVirtualMethodSlot(NodeFactory factory, MethodDesc method, TypeDesc implType, bool countDictionarySlots = true)
92private static int GetNumberOfSlotsInCurrentType(NodeFactory factory, TypeDesc implType, bool countDictionarySlots)
121private static int GetNumberOfBaseSlots(NodeFactory factory, TypeDesc owningType, bool countDictionarySlots)
156public static int GetGenericDictionarySlot(NodeFactory factory, TypeDesc type)
parent\parent\Common\Compiler\DependencyAnalysis\AssemblyStubNode.cs (9)
25public override ObjectNodeSection GetSection(NodeFactory factory) => ObjectNodeSection.TextSection;
33public override ObjectData GetData(NodeFactory factory, bool relocsOnly)
96protected abstract void EmitCode(NodeFactory factory, ref X64.X64Emitter instructionEncoder, bool relocsOnly);
97protected abstract void EmitCode(NodeFactory factory, ref X86.X86Emitter instructionEncoder, bool relocsOnly);
98protected abstract void EmitCode(NodeFactory factory, ref ARM.ARMEmitter instructionEncoder, bool relocsOnly);
99protected abstract void EmitCode(NodeFactory factory, ref ARM64.ARM64Emitter instructionEncoder, bool relocsOnly);
100protected abstract void EmitCode(NodeFactory factory, ref LoongArch64.LoongArch64Emitter instructionEncoder, bool relocsOnly);
101protected abstract void EmitCode(NodeFactory factory, ref RiscV64.RiscV64Emitter instructionEncoder, bool relocsOnly);
102protected abstract void EmitCode(NodeFactory factory, ref Wasm.WasmEmitter instructionEncoder, bool relocsOnly);
parent\parent\Common\Compiler\DependencyTrackingLevel.cs (12)
35public static DependencyAnalyzerBase<NodeFactory> CreateDependencyGraph(this DependencyTrackingLevel trackingLevel, NodeFactory factory, IComparer<DependencyNodeCore<NodeFactory>> comparer = null)
41if (EventSourceLogStrategy<NodeFactory>.IsEventSourceEnabled)
42return new DependencyAnalyzer<EventSourceLogStrategy<NodeFactory>, NodeFactory>(factory, comparer);
44return new DependencyAnalyzer<NoLogStrategy<NodeFactory>, NodeFactory>(factory, comparer);
47return new DependencyAnalyzer<FirstMarkLogStrategy<NodeFactory>, NodeFactory>(factory, comparer);
50return new DependencyAnalyzer<FullGraphLogStrategy<NodeFactory>, NodeFactory>(factory, comparer);