CIRCT  20.0.0git
Namespaces | Functions | Variables
HandshakeExecutableOps.cpp File Reference
#include "circt/Dialect/Handshake/HandshakeOps.h"
#include "mlir/IR/Value.h"
#include "llvm/ADT/Any.h"
#include "llvm/Support/Debug.h"
Include dependency graph for HandshakeExecutableOps.cpp:

Go to the source code of this file.

Namespaces

 circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
 
 circt::handshake
 

Functions

static std::vector< mlir::Value > toVector (mlir::ValueRange range)
 
static bool isReadyToExecute (ArrayRef< mlir::Value > ins, ArrayRef< mlir::Value > outs, llvm::DenseMap< mlir::Value, llvm::Any > &valueMap)
 
static std::vector< llvm::Any > fetchValues (ArrayRef< mlir::Value > values, llvm::DenseMap< mlir::Value, llvm::Any > &valueMap)
 
static void storeValues (std::vector< llvm::Any > &values, ArrayRef< mlir::Value > outs, llvm::DenseMap< mlir::Value, llvm::Any > &valueMap)
 
static void updateTime (ArrayRef< mlir::Value > ins, ArrayRef< mlir::Value > outs, llvm::DenseMap< mlir::Value, double > &timeMap, double latency)
 
static bool tryToExecute (Operation *op, llvm::DenseMap< mlir::Value, llvm::Any > &valueMap, llvm::DenseMap< mlir::Value, double > &timeMap, std::vector< mlir::Value > &scheduleList, double latency)
 
template<typename TMemOp >
static bool circt::handshake::executeMemoryOperation (TMemOp op, unsigned buffer, int opIndex, llvm::DenseMap< mlir::Value, llvm::Any > &valueMap, llvm::DenseMap< unsigned, unsigned > &memoryMap, llvm::DenseMap< mlir::Value, double > &timeMap, std::vector< std::vector< llvm::Any >> &store, std::vector< mlir::Value > &scheduleList)
 

Variables

static constexpr int INDEX_WIDTH = 32
 

Function Documentation

◆ fetchValues()

static std::vector<llvm::Any> fetchValues ( ArrayRef< mlir::Value >  values,
llvm::DenseMap< mlir::Value, llvm::Any > &  valueMap 
)
static

Definition at line 46 of file HandshakeExecutableOps.cpp.

References assert().

Referenced by tryToExecute().

◆ isReadyToExecute()

static bool isReadyToExecute ( ArrayRef< mlir::Value >  ins,
ArrayRef< mlir::Value >  outs,
llvm::DenseMap< mlir::Value, llvm::Any > &  valueMap 
)
static

Definition at line 30 of file HandshakeExecutableOps.cpp.

Referenced by tryToExecute().

◆ storeValues()

static void storeValues ( std::vector< llvm::Any > &  values,
ArrayRef< mlir::Value >  outs,
llvm::DenseMap< mlir::Value, llvm::Any > &  valueMap 
)
static

Definition at line 58 of file HandshakeExecutableOps.cpp.

References assert().

Referenced by tryToExecute().

◆ toVector()

static std::vector<mlir::Value> toVector ( mlir::ValueRange  range)
static

◆ tryToExecute()

static bool tryToExecute ( Operation *  op,
llvm::DenseMap< mlir::Value, llvm::Any > &  valueMap,
llvm::DenseMap< mlir::Value, double > &  timeMap,
std::vector< mlir::Value > &  scheduleList,
double  latency 
)
static

◆ updateTime()

static void updateTime ( ArrayRef< mlir::Value >  ins,
ArrayRef< mlir::Value >  outs,
llvm::DenseMap< mlir::Value, double > &  timeMap,
double  latency 
)
static

Definition at line 67 of file HandshakeExecutableOps.cpp.

Referenced by tryToExecute().

Variable Documentation

◆ INDEX_WIDTH

constexpr int INDEX_WIDTH = 32
staticconstexpr

Definition at line 22 of file HandshakeExecutableOps.cpp.