Skip to content

'airrt' Dialect

The airrt dialect is an IR for interacting with the AIR runtime. It enapsulates data structures and functions available in the runtime and can be lowered to a combination of standard and LLVM dialects.

Operations

airrt.alloc (xilinx::airrt::AllocOp)

AIRRt Allocation Op

Syntax:

operation ::= `airrt.alloc` attr-dict `:` type($result)

AIRRt Allocation Op

Results:

Result Description
result memref of any type values

airrt.dealloc (xilinx::airrt::DeallocOp)

AIRRt Deallocation Op

Syntax:

operation ::= `airrt.dealloc` attr-dict $memref `:` type($memref)

AIRRt Deallocation Op

Operands:

Operand Description
memref memref of any type values

airrt.dma_memcpy_nd (xilinx::airrt::DmaMemcpyNdOp)

Dma operator

Syntax:

operation ::= `airrt.dma_memcpy_nd` `(` $id `,`$x `,`$y `,`$memref ``
              custom<DynamicIndexList>($offsets, $static_offsets) `,`
              custom<DynamicIndexList>($lengths, $static_lengths) `,`
              custom<DynamicIndexList>($strides, $static_strides) `)` attr-dict `:`
              `(` type($id)`,`type($x)`,`type($y)`,`type($memref) `)` (`:` type($event)^)?

nd half dma operator.

The access pattern is a 4-entry offset / length / stride triple, each entry being either a compile-time constant (stored in the corresponding static_* array) or an SSA i64 value (stored in the matching variadic operand list, with ShapedType::kDynamic marking its slot in the static array). Use getMixedOffsets() / getMixedLengths() / getMixedStrides() to read an entry without caring which form it takes.

Traits: AttrSizedOperandSegments

Attributes:

AttributeMLIR TypeDescription
static_offsets::mlir::DenseI64ArrayAttri64 dense array attribute with exactly 4 elements
static_lengths::mlir::DenseI64ArrayAttri64 dense array attribute with exactly 4 elements
static_strides::mlir::DenseI64ArrayAttri64 dense array attribute with exactly 4 elements

Operands:

Operand Description
id 32-bit signless integer
x 64-bit signless integer
y 64-bit signless integer
memref ranked or unranked memref of any type values
offsets variadic of 64-bit signless integer
lengths variadic of 64-bit signless integer
strides variadic of 64-bit signless integer

Results:

Result Description
event event type

airrt.herd_load (xilinx::airrt::HerdLoadOp)

Load a herd

Syntax:

operation ::= `airrt.herd_load` $sym_name ` ``(` $rtp `)` attr-dict `:` functional-type($rtp, results)

Attributes:

AttributeMLIR TypeDescription
sym_name::mlir::StringAttrstring attribute

Operands:

Operand Description
rtp variadic of any type

Results:

Result Description
h 64-bit signless integer
event event type

airrt.herd_metadata (xilinx::airrt::HerdMetadataOp)

Runtime metadata for a single herd

Syntax:

operation ::= `airrt.herd_metadata` attr-dict

Runtime metadata for a single herd.

Traits: HasParent<SegmentMetadataOp>, SingleBlockImplicitTerminator<HerdMetadataTerminatorOp>, SingleBlock

Attributes:

AttributeMLIR TypeDescription
sym_name::mlir::StringAttrstring attribute

airrt.herd_metadata_terminator (xilinx::airrt::HerdMetadataTerminatorOp)

Implicit terminator for HerdMetadataOp's region

Syntax:

operation ::= `airrt.herd_metadata_terminator` attr-dict

Traits: HasParent<HerdMetadataOp>, Terminator

airrt.memcpy_nd (xilinx::airrt::MemcpyNdOp)

Dma operator

Syntax:

operation ::= `airrt.memcpy_nd` `(` $dst`,`$src`,`
              `[` $offset3`,`$offset2`,`$offset1`,`$offset0 `]` `,`
              `[` $length3`,`$length2`,`$length1`,`$length0 `]` `,`
              `[` $stride3`,`$stride2`,`$stride1`,`$stride0 `]` `)` attr-dict `:`
              `(` type($dst)`,`type($src)`,`
              `[` type($offset3)`,`type($offset2)`,`type($offset1)`,` type($offset0) `]` `,`
              `[` type($length3)`,`type($length2)`,`type($length1)`,` type($length0) `]` `,`
              `[` type($stride3)`,`type($stride2)`,`type($stride1)`,` type($stride0) `]` `)`  (`:` type($event)^)?

nd memcpy operator

Operands:

Operand Description
dst ranked or unranked memref of any type values
src ranked or unranked memref of any type values
offset3 64-bit signless integer
offset2 64-bit signless integer
offset1 64-bit signless integer
offset0 64-bit signless integer
length3 64-bit signless integer
length2 64-bit signless integer
length1 64-bit signless integer
length0 64-bit signless integer
stride3 64-bit signless integer
stride2 64-bit signless integer
stride1 64-bit signless integer
stride0 64-bit signless integer

Results:

Result Description
event event type

airrt.module_metadata (xilinx::airrt::ModuleMetadataOp)

Global metadata for the module

This op contains a region containing airrt.segment_metadata ops, which give information about the segments in the module.

There is one of these per module.

Traits: SingleBlockImplicitTerminator<ModuleMetadataTerminatorOp>, SingleBlock

airrt.module_metadata_terminator (xilinx::airrt::ModuleMetadataTerminatorOp)

Implicit terminator for ModuleMetadataOp's region

Syntax:

operation ::= `airrt.module_metadata_terminator` attr-dict

Traits: HasParent<ModuleMetadataOp>, Terminator

airrt.segment_load (xilinx::airrt::SegmentLoadOp)

Load a segment

Syntax:

operation ::= `airrt.segment_load` $sym_name attr-dict `:` type($p) (`,` type($event)^)?

Attributes:

AttributeMLIR TypeDescription
sym_name::mlir::StringAttrstring attribute

Results:

Result Description
p 64-bit signless integer
event event type

airrt.segment_metadata (xilinx::airrt::SegmentMetadataOp)

Runtime metadata for one air region

This op contains a region containing airrt.herd_metadata ops, which give information about the herds in the module.

Traits: HasParent<ModuleMetadataOp>, SingleBlockImplicitTerminator<SegmentMetadataTerminatorOp>, SingleBlock

Attributes:

AttributeMLIR TypeDescription
sym_name::mlir::StringAttrstring attribute

airrt.segment_metadata_terminator (xilinx::airrt::SegmentMetadataTerminatorOp)

Implicit terminator for SegmentMetadataOp's region

Syntax:

operation ::= `airrt.segment_metadata_terminator` attr-dict

Traits: HasParent<SegmentMetadataOp>, Terminator

airrt.wait_all (xilinx::airrt::WaitAllOp)

Wait for all operator

Syntax:

operation ::= `airrt.wait_all` ($events^)? attr-dict (`:` type($event)^)?

Block and wait for all events before preceding. Optionally return an event.

Operands:

Operand Description
events variadic of event type

Results:

Result Description
event event type

Type constraints

event type