MLIR-AIE 1.4.5.dev
xilinx::AIE::Placer Class Referenceabstract

#include "aie/Dialect/AIE/Transforms/AIEPlacer.h"

Inheritance diagram for xilinx::AIE::Placer:
Collaboration diagram for xilinx::AIE::Placer:

Classes

struct  Adjacency
struct  CollectedOps

Public Types

using AllocateInfo = std::pair<mlir::Operation *, TileID>
using ShareableShimEnds

Public Member Functions

 Placer ()=default
virtual ~Placer ()=default
virtual void initialize (const AIETargetModel &tm)
virtual mlir::LogicalResult place (DeviceOp device)=0
virtual llvm::StringRef getName () const =0
std::optional< TileID > getPlacement (mlir::Operation *logicalTile) const
llvm::SmallVector< AllocateInfo > & getAllocates ()

Static Public Member Functions

static CollectedOps collectOperations (DeviceOp device)
static bool satisfiesConstraints (mlir::Operation *tile, TileID pos)
static Adjacency buildCascadeAdjacency (llvm::ArrayRef< CascadeFlowOp > cascadeFlows)
static Adjacency buildComputePeerAdjacency (llvm::ArrayRef< ObjectFifoCreateOp > objectFifos)
static Adjacency buildSharedMemAdjacency (llvm::ArrayRef< ObjectFifoCreateOp > objectFifos)
static Adjacency buildObjectFifoAdjacency (llvm::ArrayRef< ObjectFifoCreateOp > objectFifos)
static Adjacency buildFlowAdjacency (llvm::ArrayRef< FlowOp > flows, llvm::ArrayRef< PacketFlowOp > pktFlows)
static ShareableShimEnds collectShareableShimEnds (DeviceOp device, llvm::ArrayRef< ObjectFifoCreateOp > objectFifos)
static std::optional< ShimTransferSpans::End > shimEndOf (DeviceOp device, mlir::StringAttr symbol)

Protected Attributes

PlacementResult result
llvm::SmallVector< AllocateInfo > allocates
const AIETargetModel * targetModel = nullptr
TileAvailability availability

Detailed Description

Definition at line 80 of file AIEPlacer.h.

Member Typedef Documentation

◆ AllocateInfo

using xilinx::AIE::Placer::AllocateInfo = std::pair<mlir::Operation *, TileID>

Definition at line 101 of file AIEPlacer.h.

◆ ShareableShimEnds

Initial value:
llvm::DenseMap<mlir::Operation *,
std::array<llvm::SmallVector<mlir::StringAttr>, 2>>

Definition at line 169 of file AIEPlacer.h.

Constructor & Destructor Documentation

◆ Placer()

xilinx::AIE::Placer::Placer ( )
default

◆ ~Placer()

virtual xilinx::AIE::Placer::~Placer ( )
virtualdefault

Member Function Documentation

◆ buildCascadeAdjacency()

Placer::Adjacency Placer::buildCascadeAdjacency ( llvm::ArrayRef< CascadeFlowOp > cascadeFlows)
static

◆ buildComputePeerAdjacency()

Placer::Adjacency Placer::buildComputePeerAdjacency ( llvm::ArrayRef< ObjectFifoCreateOp > objectFifos)
static

◆ buildFlowAdjacency()

Placer::Adjacency Placer::buildFlowAdjacency ( llvm::ArrayRef< FlowOp > flows,
llvm::ArrayRef< PacketFlowOp > pktFlows )
static

◆ buildObjectFifoAdjacency()

Placer::Adjacency Placer::buildObjectFifoAdjacency ( llvm::ArrayRef< ObjectFifoCreateOp > objectFifos)
static

◆ buildSharedMemAdjacency()

Placer::Adjacency Placer::buildSharedMemAdjacency ( llvm::ArrayRef< ObjectFifoCreateOp > objectFifos)
static

◆ collectOperations()

◆ collectShareableShimEnds()

Placer::ShareableShimEnds Placer::collectShareableShimEnds ( DeviceOp device,
llvm::ArrayRef< ObjectFifoCreateOp > objectFifos )
static

Definition at line 1364 of file AIEPlacer.cpp.

Referenced by xilinx::AIE::SequentialPlacer::place().

◆ getAllocates()

llvm::SmallVector< AllocateInfo > & xilinx::AIE::Placer::getAllocates ( )
inline

Definition at line 102 of file AIEPlacer.h.

References allocates.

◆ getName()

virtual llvm::StringRef xilinx::AIE::Placer::getName ( ) const
pure virtual

◆ getPlacement()

std::optional< TileID > xilinx::AIE::Placer::getPlacement ( mlir::Operation * logicalTile) const
inline

Definition at line 91 of file AIEPlacer.h.

References result.

◆ initialize()

◆ place()

virtual mlir::LogicalResult xilinx::AIE::Placer::place ( DeviceOp device)
pure virtual

◆ satisfiesConstraints()

bool Placer::satisfiesConstraints ( mlir::Operation * tile,
TileID pos )
static

Definition at line 101 of file AIEPlacer.cpp.

◆ shimEndOf()

std::optional< ShimTransferSpans::End > Placer::shimEndOf ( DeviceOp device,
mlir::StringAttr symbol )
static

Definition at line 1389 of file AIEPlacer.cpp.

Referenced by xilinx::AIE::SequentialPlacer::place().

Member Data Documentation

◆ allocates

llvm::SmallVector<AllocateInfo> xilinx::AIE::Placer::allocates
protected

Definition at line 183 of file AIEPlacer.h.

Referenced by getAllocates().

◆ availability

TileAvailability xilinx::AIE::Placer::availability
protected

Definition at line 185 of file AIEPlacer.h.

Referenced by initialize(), and xilinx::AIE::SequentialPlacer::initialize().

◆ result

PlacementResult xilinx::AIE::Placer::result
protected

Definition at line 182 of file AIEPlacer.h.

Referenced by getPlacement().

◆ targetModel

const AIETargetModel* xilinx::AIE::Placer::targetModel = nullptr
protected

The documentation for this class was generated from the following files: