CIRCT  20.0.0git
Namespaces | Macros | Functions
IMConstProp.cpp File Reference
#include "circt/Dialect/FIRRTL/FIRRTLAnnotations.h"
#include "circt/Dialect/FIRRTL/FIRRTLAttributes.h"
#include "circt/Dialect/FIRRTL/FIRRTLInstanceGraph.h"
#include "circt/Dialect/FIRRTL/FIRRTLOps.h"
#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"
#include "circt/Dialect/FIRRTL/Passes.h"
#include "circt/Support/APInt.h"
#include "mlir/IR/Iterators.h"
#include "mlir/IR/Threading.h"
#include "mlir/Pass/Pass.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ScopedPrinter.h"
#include "circt/Dialect/FIRRTL/Passes.h.inc"
Include dependency graph for IMConstProp.cpp:

Go to the source code of this file.

Namespaces

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

Macros

#define GEN_PASS_DEF_IMCONSTPROP
 
#define DEBUG_TYPE   "IMCP"
 

Functions

static bool isWireOrReg (Operation *op)
 Return true if this is a wire or register. More...
 
static bool isAggregate (Operation *op)
 Return true if this is an aggregate indexer. More...
 
static bool isNodeLike (Operation *op)
 
static bool isDeletableWireOrRegOrNode (Operation *op)
 Return true if this is a wire or register we're allowed to delete. More...
 
static LLVM_ATTRIBUTE_USED llvm::raw_ostream & operator<< (llvm::raw_ostream &os, const LatticeValue &lattice)
 
static std::optional< uint64_t > getFieldIDOffset (FieldRef changedFieldRef, Type connectionType, FieldRef connectedValueFieldRef)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "IMCP"

Definition at line 39 of file IMConstProp.cpp.

◆ GEN_PASS_DEF_IMCONSTPROP

#define GEN_PASS_DEF_IMCONSTPROP

Definition at line 31 of file IMConstProp.cpp.

Function Documentation

◆ getFieldIDOffset()

static std::optional<uint64_t> getFieldIDOffset ( FieldRef  changedFieldRef,
Type  connectionType,
FieldRef  connectedValueFieldRef 
)
static

◆ isAggregate()

static bool isAggregate ( Operation *  op)
static

Return true if this is an aggregate indexer.

Definition at line 47 of file IMConstProp.cpp.

◆ isDeletableWireOrRegOrNode()

static bool isDeletableWireOrRegOrNode ( Operation *  op)
static

Return true if this is a wire or register we're allowed to delete.

Definition at line 59 of file IMConstProp.cpp.

References circt::firrtl::AnnotationSet::empty(), circt::firrtl::hasDontTouch(), circt::firrtl::hasDroppableName(), and isWireOrReg().

◆ isNodeLike()

static bool isNodeLike ( Operation *  op)
static

Definition at line 54 of file IMConstProp.cpp.

◆ isWireOrReg()

static bool isWireOrReg ( Operation *  op)
static

Return true if this is a wire or register.

Definition at line 42 of file IMConstProp.cpp.

Referenced by isDeletableWireOrRegOrNode().

◆ operator<<()

static LLVM_ATTRIBUTE_USED llvm::raw_ostream& operator<< ( llvm::raw_ostream &  os,
const LatticeValue &  lattice 
)
static

Definition at line 175 of file IMConstProp.cpp.