CIRCT  19.0.0git
Namespaces | Typedefs | Functions
Materialization.cpp File Reference
#include "PassDetails.h"
#include "circt/Dialect/Handshake/HandshakeOps.h"
#include "circt/Dialect/Handshake/HandshakePasses.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/Support/IndentedOstream.h"
#include "llvm/ADT/TypeSwitch.h"
Include dependency graph for Materialization.cpp:

Go to the source code of this file.


 This file defines an intermediate representation for circuits acting as an abstraction for constraints defined over an SMT's solver context.


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


static void replaceFirstUse (Operation *op, Value oldVal, Value newVal)
static void insertSink (Value val, OpBuilder &rewriter)
void circt::handshake::insertFork (Value result, bool isLazy, OpBuilder &rewriter)
LogicalResult circt::handshake::addForkOps (Region &r, OpBuilder &rewriter)
LogicalResult circt::handshake::addSinkOps (Region &r, OpBuilder &rewriter)

Typedef Documentation

◆ BlockValues

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

Definition at line 33 of file Materialization.cpp.

Function Documentation

◆ insertSink()

static void insertSink ( Value  val,
OpBuilder &  rewriter 

Definition at line 44 of file Materialization.cpp.

Referenced by circt::handshake::addSinkOps().

◆ replaceFirstUse()

static void replaceFirstUse ( Operation *  op,
Value  oldVal,
Value  newVal 

Definition at line 35 of file Materialization.cpp.

Referenced by circt::handshake::insertFork().