Closed IsaMorphic closed 3 months ago
I believe this should all build now, I even went in and substituted the C# 12.0 specific "Collection initializers" feature for proper array initializers so that everything backports OK to net6.0
. I will also be opening a draft PR containing the IRImporter
class.
As the first part of the long deliberated NativeAOT feature implementation, I have created the following set of internal APIs that ILGPU consumes in order to provide a uniform, flattened representation of the IR graph to the end user:
ILGPU.IR.IRExporter
ILGPU.IR.IRContainer
Additionally, the following public APIs are exposed to end users of the ILGPU compiler for this purpose:
ILGPU.IR.IRContainer
ILGPU.IR.IRValue
ILGPU.IR.IRType
ILGPU.Backends.IR.IRExporterHook
The intended use-case for this API is for the end user to inject
IRExporterHook
into their desired backend via the provided DI mechanism, and from that extractIRExporterHook.CurrentContext.ExportContainer
once the initial code generation / optimization phase is completed.Runtime recovery of an IRContext from this exported representation will be written in the next PR (link pending!)
TODOs: