'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.
- 'airrt' Dialect
- Operations
- airrt.alloc (xilinx::airrt::AllocOp)
- airrt.dealloc (xilinx::airrt::DeallocOp)
- airrt.dma_memcpy_nd (xilinx::airrt::DmaMemcpyNdOp)
- airrt.herd_load (xilinx::airrt::HerdLoadOp)
- airrt.herd_metadata (xilinx::airrt::HerdMetadataOp)
- airrt.herd_metadata_terminator (xilinx::airrt::HerdMetadataTerminatorOp)
- airrt.memcpy_nd (xilinx::airrt::MemcpyNdOp)
- airrt.module_metadata (xilinx::airrt::ModuleMetadataOp)
- airrt.module_metadata_terminator (xilinx::airrt::ModuleMetadataTerminatorOp)
- airrt.segment_load (xilinx::airrt::SegmentLoadOp)
- airrt.segment_metadata (xilinx::airrt::SegmentMetadataOp)
- airrt.segment_metadata_terminator (xilinx::airrt::SegmentMetadataTerminatorOp)
- airrt.wait_all (xilinx::airrt::WaitAllOp)
- Type constraints
- Operations
Operations¶
airrt.alloc (xilinx::airrt::AllocOp)¶
AIRRt Allocation Op
Syntax:
AIRRt Allocation Op
Results:¶
| Result | Description |
|---|---|
result |
memref of any type values |
airrt.dealloc (xilinx::airrt::DeallocOp)¶
AIRRt Deallocation Op
Syntax:
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:¶
| Attribute | MLIR Type | Description |
|---|---|---|
static_offsets | ::mlir::DenseI64ArrayAttr | i64 dense array attribute with exactly 4 elements |
static_lengths | ::mlir::DenseI64ArrayAttr | i64 dense array attribute with exactly 4 elements |
static_strides | ::mlir::DenseI64ArrayAttr | i64 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:¶
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string 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:
Runtime metadata for a single herd.
Traits: HasParent<SegmentMetadataOp>, SingleBlockImplicitTerminator<HerdMetadataTerminatorOp>, SingleBlock
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string attribute |
airrt.herd_metadata_terminator (xilinx::airrt::HerdMetadataTerminatorOp)¶
Implicit terminator for HerdMetadataOp's region
Syntax:
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:
Traits: HasParent<ModuleMetadataOp>, Terminator
airrt.segment_load (xilinx::airrt::SegmentLoadOp)¶
Load a segment
Syntax:
Attributes:¶
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string 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:¶
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string attribute |
airrt.segment_metadata_terminator (xilinx::airrt::SegmentMetadataTerminatorOp)¶
Implicit terminator for SegmentMetadataOp's region
Syntax:
Traits: HasParent<SegmentMetadataOp>, Terminator
airrt.wait_all (xilinx::airrt::WaitAllOp)¶
Wait for all operator
Syntax:
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 |