CIRCT  20.0.0git
Namespaces | Typedefs | Functions | Variables
HandshakeUtils.h File Reference
#include "circt/Dialect/ESI/ESITypes.h"
#include "circt/Dialect/HW/PortImplementation.h"
#include "circt/Dialect/Handshake/HandshakeOps.h"
#include "circt/Support/LLVM.h"
#include <map>
Include dependency graph for HandshakeUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

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

Typedefs

using circt::handshake::InstanceGraph = std::map< std::string, std::set< std::string > >
 Iterates over the handshake::FuncOp's in the program to build an instance graph. More...
 

Functions

LogicalResult circt::handshake::resolveInstanceGraph (ModuleOp moduleOp, InstanceGraph &instanceGraph, std::string &topLevel, SmallVectorImpl< std::string > &sortedFuncs)
 Iterates over the handshake::FuncOp's in the program to build an instance graph. More...
 
LogicalResult circt::handshake::verifyAllValuesHasOneUse (handshake::FuncOp op)
 Checks all block arguments and values within op to ensure that all values have exactly one use. More...
 
Type circt::handshake::toValidType (Type t)
 Converts 't' into a valid HW type. More...
 
esi::ChannelType circt::handshake::esiWrapper (Type t)
 Wraps a type into an ESI ChannelType type. More...
 
hw::ModulePortInfo circt::handshake::getPortInfoForOpTypes (mlir::Operation *op, TypeRange inputs, TypeRange outputs)
 Returns the hw::ModulePortInfo that corresponds to the given handshake operation and its in- and output types. More...
 
void circt::handshake::insertFork (Value result, bool isLazy, OpBuilder &rewriter)
 Adds fork operations to any value with multiple uses in r. More...
 

Variables

static constexpr const char * circt::handshake::kPredeclarationAttr = "handshake.module_name"
 Attribute name for the name of a predeclaration of the to-be-lowered hw.module from a handshake function. More...