CIRCT
20.0.0git
|
A sample reduction pattern that removes operations which either produce no results or their results have no users. More...
Public Member Functions | |
void | beforeReduction (mlir::ModuleOp module) override |
Called before the reduction is applied to a new subset of operations. More... | |
uint64_t | match (Operation *op) override |
Check if the reduction can apply to a specific operation. More... | |
LogicalResult | rewrite (Operation *op) override |
Apply the reduction to a specific operation. More... | |
std::string | getName () const override |
Return a human-readable name for this reduction pattern. More... | |
Public Member Functions inherited from circt::Reduction | |
virtual | ~Reduction () |
virtual void | afterReduction (mlir::ModuleOp) |
Called after the reduction has been applied to a subset of operations. More... | |
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. More... | |
virtual bool | isOneShot () const |
Return true if the tool should not try to reapply this reduction after it has been successful. More... | |
void | notifyOpErased (Operation *op) |
Public Attributes | |
SymbolTableCollection | table |
std::unique_ptr< SymbolUserMap > | userMap |
Public Attributes inherited from circt::Reduction | |
std::function< void(Operation *)> | notifyOpErasedCallback = nullptr |
An optional callback for reductions to communicate removal of operations. More... | |
A sample reduction pattern that removes operations which either produce no results or their results have no users.
Definition at line 23 of file GenericReductions.cpp.
|
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 24 of file GenericReductions.cpp.
|
inlineoverridevirtual |
Return a human-readable name for this reduction pattern.
Implements circt::Reduction.
Definition at line 39 of file GenericReductions.cpp.
|
inlineoverridevirtual |
Check if the reduction can apply to a specific operation.
Returns a benefit measure where a higher number means that applying the pattern leads to a bigger reduction and zero means that the patten does not match and thus cannot be applied at all.
Implements circt::Reduction.
Definition at line 27 of file GenericReductions.cpp.
|
inlineoverridevirtual |
Apply the reduction to a specific operation.
If the returned result indicates that the application failed, the resulting module is treated the same as if the tester marked it as uninteresting.
Implements circt::Reduction.
Definition at line 35 of file GenericReductions.cpp.
References circt::reduce::pruneUnusedOps().
SymbolTableCollection OperationPruner::table |
Definition at line 41 of file GenericReductions.cpp.
std::unique_ptr<SymbolUserMap> OperationPruner::userMap |
Definition at line 42 of file GenericReductions.cpp.