CIRCT 24.0.0git
Loading...
Searching...
No Matches
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

namespace  circt
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
namespace  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()

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()

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()

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()

◆ tryToExecute()

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()

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

int INDEX_WIDTH = 32
staticconstexpr

Definition at line 22 of file HandshakeExecutableOps.cpp.