CIRCT  19.0.0git
Classes | Namespaces | Typedefs | Functions
CFToHandshake.h File Reference
#include "circt/Dialect/Handshake/HandshakeOps.h"
#include "circt/Dialect/Handshake/HandshakePasses.h"
#include "circt/Support/BackedgeBuilder.h"
#include "mlir/Transforms/DialectConversion.h"
#include <memory>
Include dependency graph for CFToHandshake.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  circt::handshake::HandshakeLowering
 
struct  circt::handshake::HandshakeLowering::MergeOpInfo
 

Namespaces

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

Typedefs

using circt::handshake::RegionLoweringFunc = llvm::function_ref< LogicalResult(Region &, ConversionPatternRewriter &)>
 

Functions

LogicalResult circt::handshake::partiallyLowerRegion (const RegionLoweringFunc &loweringFunc, MLIRContext *ctx, Region &r)
 
template<typename T , typename... TArgs, typename... TArgs2>
LogicalResult circt::handshake::runPartialLowering (T &instance, LogicalResult(T::*memberFunc)(ConversionPatternRewriter &, TArgs2...), TArgs &...args)
 
void circt::handshake::removeBasicBlocks (Region &r)
 Remove basic blocks inside the given region. More...
 
template<typename TSrcTerm , typename TDstTerm >
LogicalResult circt::handshake::lowerRegion (HandshakeLowering &hl, bool sourceConstants, bool disableTaskPipelining, Value entryCtrl)
 
LogicalResult circt::handshake::postDataflowConvert (Operation *op)
 Lowers the mlir operations into handshake that are not part of the dataflow conversion. More...
 
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > circt::createHandshakeAnalysisPass ()
 
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > circt::createCFToHandshakePass (bool sourceConstants=false, bool disableTaskPipelining=false)
 
std::unique_ptr< mlir::OperationPass< handshake::FuncOp > > circt::createHandshakeCanonicalizePass ()
 
std::unique_ptr< mlir::OperationPass< handshake::FuncOp > > circt::createHandshakeRemoveBlockPass ()
 
mlir::LogicalResult circt::insertMergeBlocks (mlir::Region &r, mlir::ConversionPatternRewriter &rewriter)
 Insert additional blocks that serve as counterparts to the blocks that diverged the control flow. More...
 
std::unique_ptr< mlir::Pass > circt::createInsertMergeBlocksPass ()