CIRCT  20.0.0git
Namespaces | Macros | Functions
TemporalCodeMotionPass.cpp File Reference
#include "TemporalRegions.h"
#include "circt/Dialect/Comb/CombOps.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/LLHD/IR/LLHDOps.h"
#include "circt/Dialect/LLHD/Transforms/Passes.h"
#include "mlir/Dialect/ControlFlow/IR/ControlFlowOps.h"
#include "mlir/IR/Dominance.h"
#include "mlir/IR/Region.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Support/LLVM.h"
#include "llvm/ADT/STLExtras.h"
#include <queue>
#include "circt/Dialect/LLHD/Transforms/Passes.h.inc"
Include dependency graph for TemporalCodeMotionPass.cpp:

Go to the source code of this file.

Namespaces

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

Macros

#define GEN_PASS_DEF_TEMPORALCODEMOTION
 

Functions

static Value getBranchDecisionsFromDominatorToTarget (OpBuilder &builder, Block *driveBlock, Block *dominator, DenseMap< Block *, Value > &mem)
 Explore all paths from the 'driveBlock' to the 'dominator' block and construct a boolean expression at the current insertion point of 'builder' to represent all those paths. More...
 
static void moveDriveOpBefore (llhd::DrvOp drvOp, Block *dominator, Operation *moveBefore, DenseMap< Block *, Value > &mem)
 More a 'llhd.drv' operation before the 'moveBefore' operation by adjusting the 'enable' operand. More...
 

Macro Definition Documentation

◆ GEN_PASS_DEF_TEMPORALCODEMOTION

#define GEN_PASS_DEF_TEMPORALCODEMOTION

Definition at line 23 of file TemporalCodeMotionPass.cpp.

Function Documentation

◆ getBranchDecisionsFromDominatorToTarget()

static Value getBranchDecisionsFromDominatorToTarget ( OpBuilder &  builder,
Block *  driveBlock,
Block *  dominator,
DenseMap< Block *, Value > &  mem 
)
static

Explore all paths from the 'driveBlock' to the 'dominator' block and construct a boolean expression at the current insertion point of 'builder' to represent all those paths.

Definition at line 35 of file TemporalCodeMotionPass.cpp.

References hw.ConstantOp::create().

Referenced by moveDriveOpBefore().

◆ moveDriveOpBefore()

static void moveDriveOpBefore ( llhd::DrvOp  drvOp,
Block *  dominator,
Operation *  moveBefore,
DenseMap< Block *, Value > &  mem 
)
static

More a 'llhd.drv' operation before the 'moveBefore' operation by adjusting the 'enable' operand.

Definition at line 91 of file TemporalCodeMotionPass.cpp.

References getBranchDecisionsFromDominatorToTarget().