CIRCT 23.0.0git
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions
InferResets.cpp File Reference
#include "circt/Analysis/FIRRTLInstanceInfo.h"
#include "circt/Dialect/FIRRTL/AnnotationDetails.h"
#include "circt/Dialect/FIRRTL/FIRRTLInstanceGraph.h"
#include "circt/Dialect/FIRRTL/FIRRTLOpInterfaces.h"
#include "circt/Dialect/FIRRTL/FIRRTLOps.h"
#include "circt/Dialect/FIRRTL/FIRRTLTypes.h"
#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"
#include "circt/Dialect/FIRRTL/Passes.h"
#include "circt/Support/Debug.h"
#include "circt/Support/FieldRef.h"
#include "circt/Support/InstanceGraph.h"
#include "circt/Support/InstanceGraphInterface.h"
#include "mlir/IR/Dominance.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "mlir/IR/Threading.h"
#include "mlir/Pass/Pass.h"
#include "llvm/ADT/EquivalenceClasses.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/TypeSwitch.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/LogicalResult.h"
#include "circt/Dialect/FIRRTL/Passes.h.inc"
Include dependency graph for InferResets.cpp:

Go to the source code of this file.

Classes

struct  llvm::DenseMapInfo< ResetSignal >
 

Namespaces

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

Macros

#define DEBUG_TYPE   "infer-resets"
 
#define GEN_PASS_DEF_INFERRESETS
 

Functions

template<typename T >
static T & operator<< (T &os, const ResetKind &kind)
 
static unsigned getMaxFieldID (FIRRTLBaseType type)
 
static unsigned getFieldID (BundleType type, unsigned index)
 
static unsigned getFieldID (FVectorType type)
 
static unsigned getIndexForFieldID (BundleType type, unsigned fieldID)
 
static bool isUselessVec (FIRRTLBaseType oldType, unsigned fieldID)
 
static bool isUselessVec (FieldRef field)
 
static bool getDeclName (Value value, SmallString< 32 > &string)
 
static bool getFieldName (const FieldRef &fieldRef, SmallString< 32 > &string)
 
static bool typeContainsReset (Type type)
 Check whether a type contains a ResetType.
 
static FIRRTLBaseType updateType (FIRRTLBaseType oldType, unsigned fieldID, FIRRTLBaseType fieldType)
 Update the type of a single field within a type.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "infer-resets"

Definition at line 35 of file InferResets.cpp.

◆ GEN_PASS_DEF_INFERRESETS

#define GEN_PASS_DEF_INFERRESETS

Definition at line 39 of file InferResets.cpp.

Function Documentation

◆ getDeclName()

static bool getDeclName ( Value  value,
SmallString< 32 > &  string 
)
static

Definition at line 424 of file InferResets.cpp.

Referenced by getFieldName().

◆ getFieldID() [1/2]

static unsigned getFieldID ( BundleType  type,
unsigned  index 
)
static

Definition at line 368 of file InferResets.cpp.

References assert(), and getMaxFieldID().

Referenced by getFieldName(), isUselessVec(), and updateType().

◆ getFieldID() [2/2]

static unsigned getFieldID ( FVectorType  type)
static

Definition at line 376 of file InferResets.cpp.

◆ getFieldName()

static bool getFieldName ( const FieldRef fieldRef,
SmallString< 32 > &  string 
)
static

◆ getIndexForFieldID()

static unsigned getIndexForFieldID ( BundleType  type,
unsigned  fieldID 
)
static

Definition at line 378 of file InferResets.cpp.

References assert(), and getMaxFieldID().

Referenced by getFieldName(), isUselessVec(), and updateType().

◆ getMaxFieldID()

static unsigned getMaxFieldID ( FIRRTLBaseType  type)
static

◆ isUselessVec() [1/2]

static bool isUselessVec ( FieldRef  field)
static

◆ isUselessVec() [2/2]

static bool isUselessVec ( FIRRTLBaseType  oldType,
unsigned  fieldID 
)
static

Definition at line 392 of file InferResets.cpp.

References assert(), getFieldID(), getIndexForFieldID(), and isUselessVec().

Referenced by isUselessVec(), and isUselessVec().

◆ operator<<()

template<typename T >
static T & operator<< ( T &  os,
const ResetKind &  kind 
)
static

Definition at line 115 of file InferResets.cpp.

◆ typeContainsReset()

static bool typeContainsReset ( Type  type)
static

Check whether a type contains a ResetType.

Definition at line 486 of file InferResets.cpp.

◆ updateType()

static FIRRTLBaseType updateType ( FIRRTLBaseType  oldType,
unsigned  fieldID,
FIRRTLBaseType  fieldType 
)
static

Update the type of a single field within a type.

Definition at line 992 of file InferResets.cpp.

References assert(), circt::firrtl::FIRRTLBaseType::getConstType(), getFieldID(), getIndexForFieldID(), circt::firrtl::FIRRTLBaseType::isConst(), and updateType().

Referenced by mangleCircuitSymbols(), and updateType().