CIRCT 21.0.0git
|
A sample reduction pattern that converts arc.state
operations to the simpler arc.call
operation and removes clock, latency, name attributes, enables, and resets in the process.
More...
Public Member Functions | |
LogicalResult | rewrite (StateOp stateOp) 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. | |
virtual uint64_t | match (StateOp op) |
LogicalResult | rewrite (Operation *op) override |
Apply the reduction to a specific operation. | |
![]() | |
virtual | ~Reduction () |
virtual void | beforeReduction (mlir::ModuleOp) |
Called before the reduction is applied to a new subset of operations. | |
virtual void | afterReduction (mlir::ModuleOp) |
Called after the reduction has been applied to a subset of operations. | |
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) |
Additional Inherited Members | |
![]() | |
std::function< void(Operation *)> | notifyOpErasedCallback = nullptr |
An optional callback for reductions to communicate removal of operations. | |
A sample reduction pattern that converts arc.state
operations to the simpler arc.call
operation and removes clock, latency, name attributes, enables, and resets in the process.
Definition at line 28 of file ArcReductions.cpp.
|
inlineoverridevirtual |
Return a human-readable name for this reduction pattern.
Implements circt::Reduction.
Definition at line 41 of file ArcReductions.cpp.
|
inlineoverridevirtual |
Implements circt::OpReduction< StateOp >.
Definition at line 29 of file ArcReductions.cpp.