CIRCT 24.0.0git
Loading...
Searching...
No Matches
circt::calyx::PartialLoweringPattern< OpType, RewritePatternType > Class Template Referenceabstract

Base class for partial lowering passes. More...

#include <CalyxLoweringUtils.h>

Inheritance diagram for circt::calyx::PartialLoweringPattern< OpType, RewritePatternType >:
Collaboration diagram for circt::calyx::PartialLoweringPattern< OpType, RewritePatternType >:

Public Member Functions

 PartialLoweringPattern (MLIRContext *ctx, LogicalResult &resRef, PatternApplicationState &patternState)
LogicalResult matchAndRewrite (OpType op, PatternRewriter &rewriter) const override
virtual LogicalResult partiallyLower (OpType op, PatternRewriter &rewriter) const =0

Private Attributes

LogicalResult & partialPatternRes
PatternApplicationState & patternState

Detailed Description

template<class OpType, template< class > class RewritePatternType = OpRewritePattern>
class circt::calyx::PartialLoweringPattern< OpType, RewritePatternType >

Base class for partial lowering passes.

A partial lowering pass modifies the root operation in place, but does not replace the root operation. The RewritePatternType template parameter allows for using both OpRewritePattern (default) or OpInterfaceRewritePattern.

Definition at line 619 of file CalyxLoweringUtils.h.

Constructor & Destructor Documentation

◆ PartialLoweringPattern()

template<class OpType, template< class > class RewritePatternType = OpRewritePattern>
circt::calyx::PartialLoweringPattern< OpType, RewritePatternType >::PartialLoweringPattern ( MLIRContext * ctx,
LogicalResult & resRef,
PatternApplicationState & patternState )
inline

Definition at line 622 of file CalyxLoweringUtils.h.

References partialPatternRes, and patternState.

Member Function Documentation

◆ matchAndRewrite()

template<class OpType, template< class > class RewritePatternType = OpRewritePattern>
LogicalResult circt::calyx::PartialLoweringPattern< OpType, RewritePatternType >::matchAndRewrite ( OpType op,
PatternRewriter & rewriter ) const
inlineoverride

Definition at line 627 of file CalyxLoweringUtils.h.

References failure(), partiallyLower(), partialPatternRes, and patternState.

◆ partiallyLower()

template<class OpType, template< class > class RewritePatternType = OpRewritePattern>
virtual LogicalResult circt::calyx::PartialLoweringPattern< OpType, RewritePatternType >::partiallyLower ( OpType op,
PatternRewriter & rewriter ) const
pure virtual

Member Data Documentation

◆ partialPatternRes

template<class OpType, template< class > class RewritePatternType = OpRewritePattern>
LogicalResult& circt::calyx::PartialLoweringPattern< OpType, RewritePatternType >::partialPatternRes
private

Definition at line 658 of file CalyxLoweringUtils.h.

Referenced by matchAndRewrite(), and PartialLoweringPattern().

◆ patternState

template<class OpType, template< class > class RewritePatternType = OpRewritePattern>
PatternApplicationState& circt::calyx::PartialLoweringPattern< OpType, RewritePatternType >::patternState
private

Definition at line 659 of file CalyxLoweringUtils.h.

Referenced by matchAndRewrite(), and PartialLoweringPattern().


The documentation for this class was generated from the following file: