CIRCT
20.0.0git
|
#include "circt/Dialect/Handshake/HandshakeOps.h"
#include "circt/Dialect/ESI/ESITypes.h"
#include "circt/Support/LLVM.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/IntegerSet.h"
#include "mlir/IR/Matchers.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/IR/SymbolTable.h"
#include "mlir/IR/Value.h"
#include "mlir/Interfaces/FunctionImplementation.h"
#include "mlir/Transforms/InliningUtils.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/ADT/TypeSwitch.h"
#include <set>
#include "circt/Dialect/Handshake/HandshakeCanonicalization.h.inc"
#include "circt/Dialect/Handshake/Handshake.cpp.inc"
Go to the source code of this file.
Namespaces | |
circt | |
The InstanceGraph op interface, see InstanceGraphInterface.td for more details. | |
circt::handshake | |
Macros | |
#define | GET_OP_CLASSES |
Functions | |
bool | circt::handshake::isControlOpImpl (Operation *op) |
Default implementation for checking whether an operation is a control operation. More... | |
static std::string | defaultOperandName (unsigned int idx) |
static ParseResult | parseIntInSquareBrackets (OpAsmParser &parser, int &v) |
static ParseResult | parseSostOperation (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::UnresolvedOperand > &operands, OperationState &result, int &size, Type &type, bool explicitSize) |
static LogicalResult | verifyIndexWideEnough (Operation *op, Value indexVal, uint64_t numOperands) |
Verifies whether an indexing value is wide enough to index into a provided number of operands. More... | |
static bool | isControlCheckTypeAndOperand (Type dataType, Value operand) |
template<typename TMemOp > | |
llvm::SmallVector< handshake::MemLoadInterface > | getLoadPorts (TMemOp op) |
template<typename TMemOp > | |
llvm::SmallVector< handshake::MemStoreInterface > | getStorePorts (TMemOp op) |
static ParseResult | parseForkOp (OpAsmParser &parser, OperationState &result) |
static Value | getDematerialized (Value v) |
Returns a dematerialized version of the value 'v', defined as the source of the value before passing through a buffer or fork operation. More... | |
static ParseResult | parseFuncOpArgs (OpAsmParser &parser, SmallVectorImpl< OpAsmParser::Argument > &entryArgs, SmallVectorImpl< Type > &resTypes, SmallVectorImpl< DictionaryAttr > &resAttrs) |
Parses a FuncOp signature using mlir::function_interface_impl::parseFunctionSignature while getting access to the parsed SSA names to store as attributes. More... | |
static SmallVector< Attribute > | getFuncOpNames (Builder &builder, unsigned cnt, StringRef prefix) |
Generates names for a handshake.func input and output arguments, based on the number of args as well as a prefix. More... | |
static void | addStringToStringArrayAttr (Builder &builder, Operation *op, StringRef attrName, StringAttr str) |
Helper function for appending a string to an array attribute, and rewriting the attribute back to the operation. More... | |
static std::string | getMemoryOperandName (unsigned nStores, unsigned idx) |
static std::string | getMemoryResultName (unsigned nLoads, unsigned nStores, unsigned idx) |
static ParseResult | parseMemoryAccessOp (OpAsmParser &parser, OperationState &result) |
template<typename MemOp > | |
static void | printMemoryAccessOp (OpAsmPrinter &p, MemOp op) |
template<typename TMemoryOp > | |
static LogicalResult | verifyMemoryAccessOp (TMemoryOp op) |
#define GET_OP_CLASSES |
Definition at line 1504 of file HandshakeOps.cpp.
|
static |
Helper function for appending a string to an array attribute, and rewriting the attribute back to the operation.
Definition at line 596 of file HandshakeOps.cpp.
|
static |
Definition at line 53 of file HandshakeOps.cpp.
|
static |
Returns a dematerialized version of the value 'v', defined as the source of the value before passing through a buffer or fork operation.
Definition at line 301 of file HandshakeOps.cpp.
|
static |
Generates names for a handshake.func input and output arguments, based on the number of args as well as a prefix.
Definition at line 564 of file HandshakeOps.cpp.
llvm::SmallVector<handshake::MemLoadInterface> getLoadPorts | ( | TMemOp | op | ) |
Definition at line 122 of file HandshakeOps.cpp.
References circt::handshake::MemLoadInterface::addressIn, circt::handshake::MemLoadInterface::dataOut, circt::handshake::MemLoadInterface::doneOut, and circt::handshake::MemLoadInterface::index.
|
static |
Definition at line 953 of file HandshakeOps.cpp.
|
static |
Definition at line 970 of file HandshakeOps.cpp.
llvm::SmallVector<handshake::MemStoreInterface> getStorePorts | ( | TMemOp | op | ) |
Definition at line 144 of file HandshakeOps.cpp.
References circt::handshake::MemStoreInterface::addressIn, circt::handshake::MemStoreInterface::dataIn, circt::handshake::MemStoreInterface::doneOut, and circt::handshake::MemStoreInterface::index.
|
static |
Definition at line 108 of file HandshakeOps.cpp.
|
static |
Definition at line 166 of file HandshakeOps.cpp.
References parseSostOperation().
|
static |
Parses a FuncOp signature using mlir::function_interface_impl::parseFunctionSignature while getting access to the parsed SSA names to store as attributes.
Definition at line 548 of file HandshakeOps.cpp.
|
static |
Definition at line 57 of file HandshakeOps.cpp.
Referenced by parseSostOperation().
|
static |
Definition at line 1215 of file HandshakeOps.cpp.
References circt::calyx::direction::get().
|
static |
Definition at line 64 of file HandshakeOps.cpp.
References parseIntInSquareBrackets().
Referenced by parseForkOp().
|
static |
Definition at line 1244 of file HandshakeOps.cpp.
|
static |
Verifies whether an indexing value is wide enough to index into a provided number of operands.
Definition at line 84 of file HandshakeOps.cpp.
|
static |
Definition at line 1272 of file HandshakeOps.cpp.