MLIR  20.0.0git
Public Member Functions | List of all members
mlir::RewritePatternSet Class Reference

#include "mlir/IR/PatternMatch.h"

Public Member Functions

 RewritePatternSet (MLIRContext *context)
 
 RewritePatternSet (MLIRContext *context, std::unique_ptr< RewritePattern > pattern)
 Construct a RewritePatternSet populated with the given pattern. More...
 
 RewritePatternSet (PDLPatternModule &&pattern)
 
MLIRContextgetContext () const
 
NativePatternListT & getNativePatterns ()
 Return the native patterns held in this list. More...
 
PDLPatternModule & getPDLPatterns ()
 Return the PDL patterns held in this list. More...
 
void clear ()
 Clear out all of the held patterns in this list. More...
 
template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSetadd (ConstructorArg &&arg, ConstructorArgs &&...args)
 Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments. More...
 
template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSetaddWithLabel (ArrayRef< StringRef > debugLabels, ConstructorArg &&arg, ConstructorArgs &&...args)
 An overload of the above add method that allows for attaching a set of debug labels to the attached patterns. More...
 
template<typename... Ts>
RewritePatternSetadd ()
 Add an instance of each of the pattern types 'Ts'. More...
 
RewritePatternSetadd (std::unique_ptr< RewritePattern > pattern)
 Add the given native pattern to the pattern list. More...
 
RewritePatternSetadd (PDLPatternModule &&pattern)
 Add the given PDL pattern to the pattern list. More...
 
template<typename OpType >
RewritePatternSetadd (LogicalResult(*implFn)(OpType, PatternRewriter &rewriter), PatternBenefit benefit=1, ArrayRef< StringRef > generatedNames={})
 
template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSetinsert (ConstructorArg &&arg, ConstructorArgs &&...args)
 Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments. More...
 
template<typename... Ts>
RewritePatternSetinsert ()
 Add an instance of each of the pattern types 'Ts'. More...
 
RewritePatternSetinsert (std::unique_ptr< RewritePattern > pattern)
 Add the given native pattern to the pattern list. More...
 
RewritePatternSetinsert (PDLPatternModule &&pattern)
 Add the given PDL pattern to the pattern list. More...
 
template<typename OpType >
RewritePatternSetinsert (LogicalResult(*implFn)(OpType, PatternRewriter &rewriter))
 

Detailed Description

Definition at line 814 of file PatternMatch.h.

Constructor & Destructor Documentation

◆ RewritePatternSet() [1/3]

mlir::RewritePatternSet::RewritePatternSet ( MLIRContext context)
inline

Definition at line 818 of file PatternMatch.h.

◆ RewritePatternSet() [2/3]

mlir::RewritePatternSet::RewritePatternSet ( MLIRContext context,
std::unique_ptr< RewritePattern pattern 
)
inline

Construct a RewritePatternSet populated with the given pattern.

Definition at line 821 of file PatternMatch.h.

◆ RewritePatternSet() [3/3]

mlir::RewritePatternSet::RewritePatternSet ( PDLPatternModule &&  pattern)
inline

Definition at line 826 of file PatternMatch.h.

Member Function Documentation

◆ add() [1/5]

template<typename... Ts>
RewritePatternSet& mlir::RewritePatternSet::add ( )
inline

Add an instance of each of the pattern types 'Ts'.

Return a reference to this for chaining insertions.

Definition at line 881 of file PatternMatch.h.

Referenced by insert().

◆ add() [2/5]

template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSet& mlir::RewritePatternSet::add ( ConstructorArg &&  arg,
ConstructorArgs &&...  args 
)
inline

Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments.

Return a reference to this for chaining insertions. Note: ConstructorArg is necessary here to separate the two variadic lists.

Definition at line 853 of file PatternMatch.h.

Referenced by mlir::spirv::populateSPIRVGLCanonicalizationPatterns().

◆ add() [3/5]

template<typename OpType >
RewritePatternSet& mlir::RewritePatternSet::add ( LogicalResult(*)(OpType, PatternRewriter &rewriter)  implFn,
PatternBenefit  benefit = 1,
ArrayRef< StringRef >  generatedNames = {} 
)
inline

Definition at line 903 of file PatternMatch.h.

◆ add() [4/5]

RewritePatternSet& mlir::RewritePatternSet::add ( PDLPatternModule &&  pattern)
inline

Add the given PDL pattern to the pattern list.

Return a reference to this for chaining insertions.

Definition at line 895 of file PatternMatch.h.

◆ add() [5/5]

RewritePatternSet& mlir::RewritePatternSet::add ( std::unique_ptr< RewritePattern pattern)
inline

Add the given native pattern to the pattern list.

Return a reference to this for chaining insertions.

Definition at line 888 of file PatternMatch.h.

◆ addWithLabel()

template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSet& mlir::RewritePatternSet::addWithLabel ( ArrayRef< StringRef >  debugLabels,
ConstructorArg &&  arg,
ConstructorArgs &&...  args 
)
inline

An overload of the above add method that allows for attaching a set of debug labels to the attached patterns.

This is useful for labeling groups of patterns that may be shared between multiple different passes/users.

Definition at line 869 of file PatternMatch.h.

◆ clear()

void mlir::RewritePatternSet::clear ( )
inline

Clear out all of the held patterns in this list.

Definition at line 838 of file PatternMatch.h.

◆ getContext()

MLIRContext* mlir::RewritePatternSet::getContext ( ) const
inline

Definition at line 829 of file PatternMatch.h.

Referenced by insert(), and mlir::spirv::populateSPIRVGLCanonicalizationPatterns().

◆ getNativePatterns()

NativePatternListT& mlir::RewritePatternSet::getNativePatterns ( )
inline

Return the native patterns held in this list.

Definition at line 832 of file PatternMatch.h.

◆ getPDLPatterns()

PDLPatternModule& mlir::RewritePatternSet::getPDLPatterns ( )
inline

Return the PDL patterns held in this list.

Definition at line 835 of file PatternMatch.h.

◆ insert() [1/5]

template<typename... Ts>
RewritePatternSet& mlir::RewritePatternSet::insert ( )
inline

Add an instance of each of the pattern types 'Ts'.

Return a reference to this for chaining insertions.

Definition at line 947 of file PatternMatch.h.

◆ insert() [2/5]

template<typename... Ts, typename ConstructorArg , typename... ConstructorArgs, typename = std::enable_if_t<sizeof...(Ts) != 0>>
RewritePatternSet& mlir::RewritePatternSet::insert ( ConstructorArg &&  arg,
ConstructorArgs &&...  args 
)
inline

Add an instance of each of the pattern types 'Ts' to the pattern list with the given arguments.

Return a reference to this for chaining insertions. Note: ConstructorArg is necessary here to separate the two variadic lists.

Definition at line 937 of file PatternMatch.h.

◆ insert() [3/5]

template<typename OpType >
RewritePatternSet& mlir::RewritePatternSet::insert ( LogicalResult(*)(OpType, PatternRewriter &rewriter)  implFn)
inline

Definition at line 969 of file PatternMatch.h.

References add(), and getContext().

◆ insert() [4/5]

RewritePatternSet& mlir::RewritePatternSet::insert ( PDLPatternModule &&  pattern)
inline

Add the given PDL pattern to the pattern list.

Return a reference to this for chaining insertions.

Definition at line 961 of file PatternMatch.h.

◆ insert() [5/5]

RewritePatternSet& mlir::RewritePatternSet::insert ( std::unique_ptr< RewritePattern pattern)
inline

Add the given native pattern to the pattern list.

Return a reference to this for chaining insertions.

Definition at line 954 of file PatternMatch.h.


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