CIRCT 23.0.0git
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Functions
FIRRTLReductions.cpp File Reference
#include "circt/Dialect/FIRRTL/FIRRTLReductions.h"
#include "circt/Dialect/FIRRTL/AnnotationDetails.h"
#include "circt/Dialect/FIRRTL/CHIRRTLDialect.h"
#include "circt/Dialect/FIRRTL/FIRRTLAnnotationHelper.h"
#include "circt/Dialect/FIRRTL/FIRRTLAnnotations.h"
#include "circt/Dialect/FIRRTL/FIRRTLInstanceGraph.h"
#include "circt/Dialect/FIRRTL/FIRRTLOps.h"
#include "circt/Dialect/FIRRTL/FIRRTLUtils.h"
#include "circt/Dialect/FIRRTL/LayerSet.h"
#include "circt/Dialect/FIRRTL/NLATable.h"
#include "circt/Dialect/FIRRTL/Passes.h"
#include "circt/Dialect/HW/InnerSymbolNamespace.h"
#include "circt/Dialect/HW/InnerSymbolTable.h"
#include "circt/Reduce/ReductionUtils.h"
#include "circt/Support/Namespace.h"
#include "mlir/Analysis/TopologicalSortUtils.h"
#include "mlir/IR/Dominance.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "mlir/IR/Matchers.h"
#include "llvm/ADT/APSInt.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/Support/Debug.h"
Include dependency graph for FIRRTLReductions.cpp:

Go to the source code of this file.

Classes

struct  detail::SymbolCache
 A utility doing lazy construction of SymbolTables and SymbolUserMaps, which is handy for reductions that need to look up a lot of symbols. More...
 
struct  ModuleSizeCache
 Utility to track the transitive size of modules. More...
 
struct  NLARemover
 A tracker for track NLAs affected by a reduction. More...
 
struct  ListCreateElementRemover
 A reduction pattern that removes elements from FIRRTL list create operations. More...
 
struct  ModuleConventionRemover
 Reduction that removes the convention attribute from regular modules. More...
 
struct  ExtmoduleConventionRemover
 Reduction that removes the convention attribute from external modules. More...
 

Namespaces

namespace  detail
 

Macros

#define DEBUG_TYPE   "firrtl-reductions"
 

Functions

static std::optional< firrtl::FModuleOp > findInstantiatedModule (firrtl::InstanceOp instOp, ::detail::SymbolCache &symbols)
 Utility to easily get the instantiated firrtl::FModuleOp or an empty optional in case another type of module is instantiated.
 
static bool onlyInvalidated (Value arg)
 Check that all connections to a value are invalids.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "firrtl-reductions"

Definition at line 33 of file FIRRTLReductions.cpp.

Function Documentation

◆ findInstantiatedModule()

static std::optional< firrtl::FModuleOp > findInstantiatedModule ( firrtl::InstanceOp  instOp,
::detail::SymbolCache symbols 
)
static

Utility to easily get the instantiated firrtl::FModuleOp or an empty optional in case another type of module is instantiated.

Definition at line 83 of file FIRRTLReductions.cpp.

References detail::SymbolCache::getSymbolTable().

Referenced by ModuleSizeCache::getModuleSize().

◆ onlyInvalidated()

static bool onlyInvalidated ( Value  arg)
static

Check that all connections to a value are invalids.

Definition at line 114 of file FIRRTLReductions.cpp.