CIRCT 21.0.0git
|
A sample reduction pattern that maps firrtl.module
to firrtl.extmodule
.
More...
Public Member Functions | |
void | beforeReduction (mlir::ModuleOp op) override |
Called before the reduction is applied to a new subset of operations. | |
void | afterReduction (mlir::ModuleOp op) override |
Called after the reduction has been applied to a subset of operations. | |
uint64_t | match (firrtl::FModuleOp module) override |
LogicalResult | rewrite (firrtl::FModuleOp module) override |
std::string | getName () const override |
Return a human-readable name for this reduction pattern. | |
![]() | |
uint64_t | match (Operation *op) override |
Check if the reduction can apply to a specific operation. | |
LogicalResult | rewrite (Operation *op) override |
Apply the reduction to a specific operation. | |
![]() | |
virtual | ~Reduction () |
virtual bool | acceptSizeIncrease () const |
Return true if the tool should accept the transformation this reduction performs on the module even if the overall size of the output increases. | |
virtual bool | isOneShot () const |
Return true if the tool should not try to reapply this reduction after it has been successful. | |
void | notifyOpErased (Operation *op) |
Public Attributes | |
::detail::SymbolCache | symbols |
NLARemover | nlaRemover |
ModuleSizeCache | moduleSizes |
![]() | |
std::function< void(Operation *)> | notifyOpErasedCallback = nullptr |
An optional callback for reductions to communicate removal of operations. | |
A sample reduction pattern that maps firrtl.module
to firrtl.extmodule
.
Definition at line 179 of file FIRRTLReductions.cpp.
|
inlineoverridevirtual |
Called after the reduction has been applied to a subset of operations.
Reductions may use this callback to perform post-processing of the reductions before the resulting module is tried for interestingness.
Reimplemented from circt::Reduction.
Definition at line 185 of file FIRRTLReductions.cpp.
References nlaRemover, and NLARemover::remove().
|
inlineoverridevirtual |
Called before the reduction is applied to a new subset of operations.
Reductions may use this callback to collect information such as symbol tables about the module upfront.
Reimplemented from circt::Reduction.
Definition at line 180 of file FIRRTLReductions.cpp.
References detail::SymbolCache::clear(), ModuleSizeCache::clear(), NLARemover::clear(), moduleSizes, nlaRemover, and symbols.
|
inlineoverridevirtual |
Return a human-readable name for this reduction pattern.
Implements circt::Reduction.
Definition at line 203 of file FIRRTLReductions.cpp.
|
inlineoverridevirtual |
Reimplemented from circt::OpReduction< firrtl::FModuleOp >.
Definition at line 187 of file FIRRTLReductions.cpp.
References ModuleSizeCache::getModuleSize(), moduleSizes, and symbols.
|
inlineoverridevirtual |
Implements circt::OpReduction< firrtl::FModuleOp >.
Definition at line 191 of file FIRRTLReductions.cpp.
References NLARemover::markNLAsInOperation(), and nlaRemover.
ModuleSizeCache FIRRTLModuleExternalizer::moduleSizes |
Definition at line 207 of file FIRRTLReductions.cpp.
Referenced by beforeReduction(), and match().
NLARemover FIRRTLModuleExternalizer::nlaRemover |
Definition at line 206 of file FIRRTLReductions.cpp.
Referenced by afterReduction(), beforeReduction(), and rewrite().
::detail::SymbolCache FIRRTLModuleExternalizer::symbols |
Definition at line 205 of file FIRRTLReductions.cpp.
Referenced by beforeReduction(), and match().