MLIR-AIE 1.4.5.dev
AIEFindFlows.cpp File Reference
#include "aie/Dialect/AIE/IR/AIEDialect.h"
#include "aie/Dialect/AIE/Transforms/AIEPasses.h"
#include "mlir/IR/IRMapping.h"
#include "mlir/Pass/Pass.h"
#include <map>
#include <optional>
#include <set>
#include <tuple>
#include <utility>
#include <vector>
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallBitVector.h"
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
Include dependency graph for AIEFindFlows.cpp:

Go to the source code of this file.

Classes

struct  Via
struct  CircuitFanoutSeed
class  ConnectivityAnalysis
struct  LiftedOps
struct  AIEFindFlowsPass

Namespaces

namespace  xilinx
namespace  xilinx::AIE

Macros

#define GEN_PASS_DEF_AIEFINDFLOWS
#define DEBUG_TYPE   "aie-find-flows"

Typedefs

using MaskValue
using PortConnection
using PortMaskValue
using PacketConnection
using FlowKey = std::tuple<int, int, int, int, int, int, int, int, int, int>
using FlowKeySet = std::set<FlowKey>

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "aie-find-flows"

Definition at line 30 of file AIEFindFlows.cpp.

◆ GEN_PASS_DEF_AIEFINDFLOWS

#define GEN_PASS_DEF_AIEFINDFLOWS

Definition at line 26 of file AIEFindFlows.cpp.

Typedef Documentation

◆ FlowKey

using FlowKey = std::tuple<int, int, int, int, int, int, int, int, int, int>

Definition at line 514 of file AIEFindFlows.cpp.

◆ FlowKeySet

using FlowKeySet = std::set<FlowKey>

Definition at line 515 of file AIEFindFlows.cpp.

◆ MaskValue

using MaskValue
Initial value:
struct MaskValue {
int mask;
int value;
}
struct MaskValue { int mask; int value;} MaskValue

Definition at line 36 of file AIEFindFlows.cpp.

◆ PacketConnection

Initial value:
PortConnection portConnection;
llvm::SmallVector<Via, 4> vias;
llvm::SmallVector<Operation *, 8> usedOps;
bool isPacket = false;
}
struct PacketConnection { PortConnection portConnection; MaskValue mv; llvm::SmallVector< Via, 4 > vias; llvm::SmallVector< Operation *, 8 > usedOps; bool isPacket=false;} PacketConnection
struct PortConnection { Operation *op; Port port;} PortConnection

Definition at line 62 of file AIEFindFlows.cpp.

◆ PortConnection

Initial value:
struct PortConnection {
Operation *op;
Port port;
}
struct Port { WireBundle bundle; int channel; bool operator==(const Port &rhs) const { return std::tie(bundle, channel)==std::tie(rhs.bundle, rhs.channel); } bool operator!=(const Port &rhs) const { return !(*this==rhs);} bool operator<(const Port &rhs) const { return std::tie(bundle, channel)< std::tie(rhs.bundle, rhs.channel); } friend std::ostream &operator<<(std::ostream &os, const Port &port) { os<< "("; os<< stringifyWireBundle(port.bundle).str(); os<< ": "<< std::to_string(port.channel)<< ")"; return os; } friend llvm::raw_ostream &operator<<(llvm::raw_ostream &os, const Port &port) { os<< to_string(port); return os; } } Port
Definition AIEDialect.h:265

Definition at line 41 of file AIEFindFlows.cpp.

◆ PortMaskValue

Initial value:
struct PortMaskValue {
Port port;
llvm::SmallVector<Operation *, 3> ops;
}
struct PortMaskValue { Port port; MaskValue mv; llvm::SmallVector< Operation *, 3 > ops;} PortMaskValue

Definition at line 46 of file AIEFindFlows.cpp.