CIRCT  20.0.0git
Namespaces | Macros | Typedefs | Functions
Materialization.cpp File Reference
#include "circt/Dialect/Handshake/HandshakeOps.h"
#include "circt/Dialect/Handshake/HandshakePasses.h"
#include "circt/Dialect/Handshake/HandshakeUtils.h"
#include "circt/Support/LLVM.h"
#include "mlir/Dialect/Affine/IR/AffineOps.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/OperationSupport.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Support/IndentedOstream.h"
#include "llvm/ADT/TypeSwitch.h"
#include "circt/Dialect/Handshake/HandshakePasses.h.inc"
Include dependency graph for Materialization.cpp:

Go to the source code of this file.

Namespaces

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

Macros

#define GEN_PASS_DEF_HANDSHAKEMATERIALIZEFORKSSINKS
 
#define GEN_PASS_DEF_HANDSHAKEDEMATERIALIZEFORKSSINKS
 

Typedefs

using BlockValues = DenseMap< Block *, std::vector< Value > >
 

Functions

static void insertSink (Value val, OpBuilder &rewriter)
 
static LogicalResult addForkOps (Region &r, OpBuilder &rewriter)
 Insert Fork Operation for every operation and function argument with more than one successor. More...
 
static LogicalResult addSinkOps (Region &r, OpBuilder &rewriter)
 Adds sink operations to any unused value in r. More...
 

Macro Definition Documentation

◆ GEN_PASS_DEF_HANDSHAKEDEMATERIALIZEFORKSSINKS

#define GEN_PASS_DEF_HANDSHAKEDEMATERIALIZEFORKSSINKS

Definition at line 32 of file Materialization.cpp.

◆ GEN_PASS_DEF_HANDSHAKEMATERIALIZEFORKSSINKS

#define GEN_PASS_DEF_HANDSHAKEMATERIALIZEFORKSSINKS

Definition at line 31 of file Materialization.cpp.

Typedef Documentation

◆ BlockValues

using BlockValues = DenseMap<Block *, std::vector<Value> >

Definition at line 42 of file Materialization.cpp.

Function Documentation

◆ addForkOps()

static LogicalResult addForkOps ( Region &  r,
OpBuilder &  rewriter 
)
static

Insert Fork Operation for every operation and function argument with more than one successor.

Definition at line 51 of file Materialization.cpp.

References circt::handshake::insertFork().

◆ addSinkOps()

static LogicalResult addSinkOps ( Region &  r,
OpBuilder &  rewriter 
)
static

Adds sink operations to any unused value in r.

Definition at line 71 of file Materialization.cpp.

References insertSink().

◆ insertSink()

static void insertSink ( Value  val,
OpBuilder &  rewriter 
)
static

Definition at line 44 of file Materialization.cpp.

Referenced by addSinkOps().