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.
[TOC]
airrt.alloc (xilinx::airrt::AllocOp)AIRRt Allocation Op
Syntax:
operation ::= `airrt.alloc` attr-dict `:` type($result)
AIRRt Allocation Op
| 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
| 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
`[` $offset3`,`$offset2`,`$offset1`,`$offset0 `]` `,`
`[` $length3`,`$length2`,`$length1`,`$length0 `]` `,`
`[` $stride3`,`$stride2`,`$stride1 `]` `)` attr-dict `:`
`(` type($id)`,`type($x)`,`type($y)`,`type($memref)`,`
`[` type($offset3)`,`type($offset2)`,`type($offset1)`,` type($offset0) `]` `,`
`[` type($length3)`,`type($length2)`,`type($length1)`,` type($length0) `]` `,`
`[` type($stride3)`,`type($stride2)`,`type($stride1) `]` `)` (`:` type($event)^)?
nd half dma operator
| 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 |
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 |
| 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)
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string attribute |
| Operand | Description |
|---|---|
rtp |
variadic of any type |
| 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
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string 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 `]` `)` 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($event)^)?
nd memcpy operator
| 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 |
| 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)^)?
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string attribute |
| 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
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string 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.
| Operand | Description |
|---|---|
events |
variadic of event type |
| Result | Description |
|---|---|
event |
event type |