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 |
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 |
memref of any type values |
src |
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 |