‘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.

[TOC]

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
              `[` $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

Operands:

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

Results:

Result Description
event event type

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

Load a herd

Syntax:

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

Attributes:

AttributeMLIR TypeDescription
sym_name::mlir::StringAttrstring attribute

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 `]` `)` 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

Operands:

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

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