CIRCT 23.0.0git
Loading...
Searching...
No Matches
Namespaces | Macros | Functions
HWIMDeadCodeElim.cpp File Reference
#include "circt/Dialect/HW/HWInstanceGraph.h"
#include "circt/Dialect/HW/HWOpInterfaces.h"
#include "circt/Dialect/HW/HWOps.h"
#include "circt/Dialect/HW/HWPasses.h"
#include "circt/Support/Utils.h"
#include "mlir/IR/BuiltinAttributes.h"
#include "mlir/IR/Iterators.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#include "llvm/ADT/DenseMapInfoVariant.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/SmallVector.h"
#include <variant>
#include "circt/Dialect/HW/Passes.h.inc"
Include dependency graph for HWIMDeadCodeElim.cpp:

Go to the source code of this file.

Namespaces

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

Macros

#define DEBUG_TYPE   "hw-imdeadcodeelim"
 
#define GEN_PASS_DEF_IMDEADCODEELIM
 

Functions

static bool hasUnknownSideEffect (Operation *op)
 
static InstanceOp cloneWithErasedPorts (InstanceOp &instance, const llvm::BitVector &inErasures, const llvm::BitVector &outErasures)
 Clone instance, but with ports deleted according to the inErasures and outErasures BitVectors.
 
static InstanceOp cloneWithErasePortsAndReplaceUses (InstanceOp &instance, const llvm::BitVector &inErasures, const llvm::BitVector &outErasures)
 Static method for cloning instance of type InstanceOp with in- and output ports erased based on inErasures and outErasures respectively.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "hw-imdeadcodeelim"

Definition at line 22 of file HWIMDeadCodeElim.cpp.

◆ GEN_PASS_DEF_IMDEADCODEELIM

#define GEN_PASS_DEF_IMDEADCODEELIM

Definition at line 26 of file HWIMDeadCodeElim.cpp.

Function Documentation

◆ cloneWithErasedPorts()

static InstanceOp cloneWithErasedPorts ( InstanceOp &  instance,
const llvm::BitVector &  inErasures,
const llvm::BitVector &  outErasures 
)
static

Clone instance, but with ports deleted according to the inErasures and outErasures BitVectors.

Definition at line 105 of file HWIMDeadCodeElim.cpp.

References assert().

Referenced by cloneWithErasePortsAndReplaceUses().

◆ cloneWithErasePortsAndReplaceUses()

static InstanceOp cloneWithErasePortsAndReplaceUses ( InstanceOp &  instance,
const llvm::BitVector &  inErasures,
const llvm::BitVector &  outErasures 
)
static

Static method for cloning instance of type InstanceOp with in- and output ports erased based on inErasures and outErasures respectively.

The users of the results of the instance are also updated.

Definition at line 152 of file HWIMDeadCodeElim.cpp.

References cloneWithErasedPorts().

◆ hasUnknownSideEffect()

static bool hasUnknownSideEffect ( Operation *  op)
static

Definition at line 89 of file HWIMDeadCodeElim.cpp.