MLIR-AIE 1.4.5.dev
xilinx::AIEX::QueueEffect Struct Reference

What one op in a loop body does to a channel queue. More...

#include "aie/Dialect/AIEX/Utils/DmaQueueModel.h"

Collaboration diagram for xilinx::AIEX::QueueEffect:

Public Types

enum class  Kind {
  Ignore , Configure , Push , Await ,
  Free
}

Static Public Member Functions

static QueueEffect configure (DmaQueueModel::ChannelKey key, mlir::Value task)
static QueueEffect push (DmaQueueModel::ChannelKey key, bool issuesToken, mlir::Value task={})
static QueueEffect await (DmaQueueModel::ChannelKey key)
static QueueEffect free (DmaQueueModel::ChannelKey key, mlir::Value task)

Public Attributes

Kind kind = Kind::Ignore
DmaQueueModel::ChannelKey key {}
bool issuesToken = false
mlir::Value task

Detailed Description

What one op in a loop body does to a channel queue.

The two lowering paths spell pushes and awaits with different ops, so the fixed point below takes the classification from its caller and keeps the FIFO rule to itself.

Free is a read-only check, not a hardware event: a dma_free_task returns a buffer descriptor id to the compiler's pool without touching the channel, so it neither pushes nor retires anything here. It asks whether task's own push – the one a later pop could still be waiting behind – has already been proven complete.

Definition at line 313 of file DmaQueueModel.h.

Member Enumeration Documentation

◆ Kind

Enumerator
Ignore 
Configure 
Push 
Await 
Free 

Definition at line 314 of file DmaQueueModel.h.

Member Function Documentation

◆ await()

QueueEffect xilinx::AIEX::QueueEffect::await ( DmaQueueModel::ChannelKey key)
inlinestatic

Definition at line 328 of file DmaQueueModel.h.

References Await, and key.

◆ configure()

QueueEffect xilinx::AIEX::QueueEffect::configure ( DmaQueueModel::ChannelKey key,
mlir::Value task )
inlinestatic

Definition at line 320 of file DmaQueueModel.h.

References Configure, key, and task.

◆ free()

QueueEffect xilinx::AIEX::QueueEffect::free ( DmaQueueModel::ChannelKey key,
mlir::Value task )
inlinestatic

Definition at line 331 of file DmaQueueModel.h.

References Free, key, and task.

◆ push()

QueueEffect xilinx::AIEX::QueueEffect::push ( DmaQueueModel::ChannelKey key,
bool issuesToken,
mlir::Value task = {} )
inlinestatic

Definition at line 324 of file DmaQueueModel.h.

References issuesToken, key, and task.

Member Data Documentation

◆ issuesToken

bool xilinx::AIEX::QueueEffect::issuesToken = false

Definition at line 317 of file DmaQueueModel.h.

Referenced by xilinx::AIEX::guardSequenceQueueDepth(), and push().

◆ key

DmaQueueModel::ChannelKey xilinx::AIEX::QueueEffect::key {}

Definition at line 316 of file DmaQueueModel.h.

Referenced by await(), configure(), free(), xilinx::AIEX::guardSequenceQueueDepth(), and push().

◆ kind

Kind xilinx::AIEX::QueueEffect::kind = Kind::Ignore

Definition at line 315 of file DmaQueueModel.h.

Referenced by xilinx::AIEX::guardSequenceQueueDepth().

◆ task

mlir::Value xilinx::AIEX::QueueEffect::task

Definition at line 318 of file DmaQueueModel.h.

Referenced by configure(), free(), xilinx::AIEX::guardSequenceQueueDepth(), and push().


The documentation for this struct was generated from the following file: