Compiler\DependencyAnalysis\ReadyToRun\WasmClosedStaticRetBufThunkNode.cs (10)
25public WasmClosedStaticRetBufThunkNode(NodeFactory factory, WasmSignature signature)
47protected override string GetName(NodeFactory factory)
60protected override DependencyList ComputeNonRelocationBasedDependencies(NodeFactory factory)
67protected override void EmitCode(NodeFactory factory, ref WasmEmitter instructionEncoder, bool relocsOnly)
107protected override void EmitCode(NodeFactory factory, ref X64.X64Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
108protected override void EmitCode(NodeFactory factory, ref X86.X86Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
109protected override void EmitCode(NodeFactory factory, ref ARM.ARMEmitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
110protected override void EmitCode(NodeFactory factory, ref ARM64.ARM64Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
111protected override void EmitCode(NodeFactory factory, ref LoongArch64.LoongArch64Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
112protected override void EmitCode(NodeFactory factory, ref RiscV64.RiscV64Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
Compiler\DependencyAnalysis\ReadyToRun\WasmImportThunk.cs (10)
30public override ObjectNodeSection GetSection(NodeFactory factory) => ObjectNodeSection.TextSection;
34public WasmImportThunk(NodeFactory factory, WasmSignature wasmSignature, ReadyToRunHelper helperId, bool useJumpableStub)
71protected override string GetName(NodeFactory factory)
102protected override void EmitCode(NodeFactory factory, ref Wasm.WasmEmitter instructionEncoder, bool relocsOnly)
239protected override void EmitCode(NodeFactory factory, ref X64.X64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
240protected override void EmitCode(NodeFactory factory, ref X86.X86Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
241protected override void EmitCode(NodeFactory factory, ref ARM.ARMEmitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
242protected override void EmitCode(NodeFactory factory, ref ARM64.ARM64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
243protected override void EmitCode(NodeFactory factory, ref LoongArch64.LoongArch64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
244protected override void EmitCode(NodeFactory factory, ref RiscV64.RiscV64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
Compiler\DependencyAnalysis\ReadyToRun\WasmInterpreterToR2RThunkNode.cs (11)
33public override ObjectNodeSection GetSection(NodeFactory factory) => ObjectNodeSection.TextSection;
43public WasmInterpreterToR2RThunkNode(NodeFactory factory, WasmSignature wasmSignature)
57protected override string GetName(NodeFactory factory)
72protected override DependencyList ComputeNonRelocationBasedDependencies(NodeFactory factory)
80protected override void EmitCode(NodeFactory factory, ref Wasm.WasmEmitter instructionEncoder, bool relocsOnly)
196protected override void EmitCode(NodeFactory factory, ref X64.X64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
197protected override void EmitCode(NodeFactory factory, ref X86.X86Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
198protected override void EmitCode(NodeFactory factory, ref ARM.ARMEmitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
199protected override void EmitCode(NodeFactory factory, ref ARM64.ARM64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
200protected override void EmitCode(NodeFactory factory, ref LoongArch64.LoongArch64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
201protected override void EmitCode(NodeFactory factory, ref RiscV64.RiscV64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
Compiler\DependencyAnalysis\ReadyToRun\WasmR2RToInterpreterThunkNode.cs (11)
43public override ObjectNodeSection GetSection(NodeFactory factory) => ObjectNodeSection.TextSection;
54public WasmR2RToInterpreterThunkNode(NodeFactory factory, WasmSignature wasmSignature)
69protected override string GetName(NodeFactory factory)
84protected override DependencyList ComputeNonRelocationBasedDependencies(NodeFactory factory)
91protected override void EmitCode(NodeFactory factory, ref Wasm.WasmEmitter instructionEncoder, bool relocsOnly)
277protected override void EmitCode(NodeFactory factory, ref X64.X64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
278protected override void EmitCode(NodeFactory factory, ref X86.X86Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
279protected override void EmitCode(NodeFactory factory, ref ARM.ARMEmitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
280protected override void EmitCode(NodeFactory factory, ref ARM64.ARM64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
281protected override void EmitCode(NodeFactory factory, ref LoongArch64.LoongArch64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
282protected override void EmitCode(NodeFactory factory, ref RiscV64.RiscV64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
Compiler\DependencyAnalysis\ReadyToRun\WasmUnboxingStubNode.cs (16)
28NodeFactory factory,
63protected override string GetName(NodeFactory factory)
91protected override DependencyList ComputeNonRelocationBasedDependencies(NodeFactory factory)
99protected override void EmitCode(NodeFactory factory, ref WasmEmitter instructionEncoder, bool relocsOnly)
177protected override void EmitCode(NodeFactory factory, ref X64.X64Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
178protected override void EmitCode(NodeFactory factory, ref X86.X86Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
179protected override void EmitCode(NodeFactory factory, ref ARM.ARMEmitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
180protected override void EmitCode(NodeFactory factory, ref ARM64.ARM64Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
181protected override void EmitCode(NodeFactory factory, ref LoongArch64.LoongArch64Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
182protected override void EmitCode(NodeFactory factory, ref RiscV64.RiscV64Emitter instructionEncoder, bool relocsOnly) => throw new NotSupportedException();
185public sealed class WasmUnboxingStubTargetNode : DependencyNodeCore<NodeFactory>
206public override IEnumerable<CombinedDependencyListEntry> GetConditionalStaticDependencies(NodeFactory context) => null;
208public override IEnumerable<DependencyListEntry> GetStaticDependencies(NodeFactory context)
219List<DependencyNodeCore<NodeFactory>> markedNodes,
221NodeFactory context) => null;
223protected override string GetName(NodeFactory factory) => $"Wasm unboxing stub target for {_targetMethod}";
Compiler\DependencyAnalysis\ReadyToRun\WasmVirtualDispatchThunkNode.cs (11)
27public WasmVirtualDispatchThunkNode(NodeFactory factory, WasmSignature wasmSignature)
37public override ObjectNodeSection GetSection(NodeFactory factory) => ObjectNodeSection.TextSection;
52protected override string GetName(NodeFactory factory)
68protected override DependencyList ComputeNonRelocationBasedDependencies(NodeFactory factory)
75protected override void EmitCode(NodeFactory factory, ref Wasm.WasmEmitter instructionEncoder, bool relocsOnly)
134protected override void EmitCode(NodeFactory factory, ref X64.X64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
135protected override void EmitCode(NodeFactory factory, ref X86.X86Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
136protected override void EmitCode(NodeFactory factory, ref ARM.ARMEmitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
137protected override void EmitCode(NodeFactory factory, ref ARM64.ARM64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
138protected override void EmitCode(NodeFactory factory, ref LoongArch64.LoongArch64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
139protected override void EmitCode(NodeFactory factory, ref RiscV64.RiscV64Emitter instructionEncoder, bool relocsOnly) { throw new NotSupportedException(); }
Compiler\ReadyToRunCodegenCompilation.cs (30)
31protected readonly DependencyAnalyzerBase<NodeFactory> _dependencyGraph;
32protected readonly NodeFactory _nodeFactory;
40public NodeFactory NodeFactory => _nodeFactory;
47DependencyAnalyzerBase<NodeFactory> dependencyGraph,
48NodeFactory nodeFactory,
78protected abstract void ComputeDependencyNodeDependencies(List<DependencyNodeCore<NodeFactory>> obj);
236private readonly NodeFactory _factory;
240public RootingServiceProvider(NodeFactory factory, RootAdder rootAdder)
247private void AddCompilationRootHelper(DependencyNodeCore<NodeFactory> node, bool rootMinimalDependencies, string reason)
273DependencyNodeCore<NodeFactory> unboxingStub = _factory.UnboxingStub(canonMethod);
348DependencyAnalyzerBase<NodeFactory> dependencyGraph,
349NodeFactory nodeFactory,
568NodeFactory componentFactory = new NodeFactory(
584IComparer<DependencyNodeCore<NodeFactory>> comparer = new SortableDependencyNode.ObjectNodeComparer(CompilerComparer.Instance);
585DependencyAnalyzerBase<NodeFactory> componentGraph = new DependencyAnalyzer<NoLogStrategy<NodeFactory>, NodeFactory>(componentFactory, comparer);
751protected override void ComputeDependencyNodeDependencies(List<DependencyNodeCore<NodeFactory>> obj)
800IReadOnlyList<DependencyNodeCore<NodeFactory>> methodsToCompile = obj;
805List<DependencyNodeCore<NodeFactory>> remainingMethods = new List<DependencyNodeCore<NodeFactory>>(obj.Count);
806foreach (DependencyNodeCore<NodeFactory> dependency in obj)
1006DependencyNodeCore<NodeFactory>[] managedHelperDependencies =
1007new DependencyNodeCore<NodeFactory>[managedHelpers.Count];
1058bool CompileMethodsAndRetries(IReadOnlyList<DependencyNodeCore<NodeFactory>> methods)
1086private bool CompileMethodList(IReadOnlyList<DependencyNodeCore<NodeFactory>> methodList)
1095foreach (DependencyNodeCore<NodeFactory> dependency in methodList)
1102Parallel.ForEach<DependencyNodeCore<NodeFactory>, WorkerState>(
1120DependencyNodeCore<NodeFactory> dependency,
1128private void CompileOneMethod(DependencyNodeCore<NodeFactory> dependency, ref WorkerState workerState)
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);