MLIR  21.0.0git
Namespaces | Classes | Typedefs | Enumerations | Functions
mlir::query::matcher Namespace Reference

Computes the backward-slice of all transitive defs reachable from rootOp, if innerMatcher matches. More...

Namespaces

 internal
 

Classes

struct  has_simple_match
 
struct  has_simple_match< T, std::void_t< decltype(std::declval< T >().match(std::declval< Operation * >()))> >
 
struct  has_bound_match
 
struct  has_bound_match< T, std::void_t< decltype(std::declval< T >().match(std::declval< Operation * >(), std::declval< SetVector< Operation * > & >()))> >
 
class  MatcherInterface
 
class  MatcherFnImpl
 
class  VariadicMatcher
 
class  DynMatcher
 
class  VariadicOperatorMatcher
 
struct  VariadicOperatorMatcherFunc
 
class  MatchFinder
 Finds and collects matches from the IR. More...
 
class  Registry
 
class  BackwardSliceMatcher
 
class  PredicateBackwardSliceMatcher
 Computes the backward-slice of all transitive defs reachable from rootOp, if innerMatcher matches. More...
 
class  PredicateForwardSliceMatcher
 Computes the forward-slice of all users reachable from rootOp, if innerMatcher matches. More...
 
class  VariantMatcher
 
class  VariantValue
 
struct  ParserValue
 
struct  MatcherCompletion
 
class  RegistryManager
 

Typedefs

using VariadicOperatorFunction = bool(*)(Operation *op, SetVector< Operation * > *matchedOps, ArrayRef< DynMatcher > innerMatchers)
 
using ConstructorMap = llvm::StringMap< std::unique_ptr< const internal::MatcherDescriptor > >
 
using MatcherCtor = const internal::MatcherDescriptor *
 

Enumerations

enum class  ArgKind { Boolean , Matcher , Signed , String }
 

Functions

template<typename Matcher >
BackwardSliceMatcher< Matcher > m_GetDefinitions (Matcher innerMatcher, int64_t maxDepth, bool inclusive, bool omitBlockArguments, bool omitUsesFromAbove)
 Matches transitive defs of a top-level operation up to N levels. More...
 
template<typename Matcher >
BackwardSliceMatcher< Matcher > m_GetAllDefinitions (Matcher innerMatcher, int64_t maxDepth)
 Matches all transitive defs of a top-level operation up to N levels. More...
 
template<typename BaseMatcher , typename Filter >
PredicateBackwardSliceMatcher< BaseMatcher, Filter > m_GetDefinitionsByPredicate (BaseMatcher innerMatcher, Filter filterMatcher, bool inclusive, bool omitBlockArguments, bool omitUsesFromAbove)
 Matches all transitive defs of a top-level operation and stops where filterMatcher rejects. More...
 
template<typename BaseMatcher , typename Filter >
PredicateForwardSliceMatcher< BaseMatcher, Filter > m_GetUsersByPredicate (BaseMatcher innerMatcher, Filter filterMatcher, bool inclusive)
 Matches all users of a top-level operation and stops where filterMatcher rejects. More...
 

Detailed Description

Computes the backward-slice of all transitive defs reachable from rootOp, if innerMatcher matches.

The traversal stops once the desired depth level is reached.

Example: starting from node 9, assuming the matcher

computes the slice for the first two depth levels:

1 2 3 4 |_______| |______| | | | | 5 6 |___|_____________| | | 7 8 |_______________| | 9

Assuming all local orders match the numbering order: {5, 7, 6, 8, 9}

Typedef Documentation

◆ ConstructorMap

using mlir::query::matcher::ConstructorMap = typedef llvm::StringMap<std::unique_ptr<const internal::MatcherDescriptor> >

Definition at line 25 of file Registry.h.

◆ MatcherCtor

Definition at line 29 of file RegistryManager.h.

◆ VariadicOperatorFunction

using mlir::query::matcher::VariadicOperatorFunction = typedef bool (*)(Operation *op, SetVector<Operation *> *matchedOps, ArrayRef<DynMatcher> innerMatchers)

Definition at line 98 of file MatchersInternal.h.

Enumeration Type Documentation

◆ ArgKind

Enumerator
Boolean 
Matcher 
Signed 
String 

Definition at line 24 of file VariantValue.h.

Function Documentation

◆ m_GetAllDefinitions()

template<typename Matcher >
BackwardSliceMatcher<Matcher> mlir::query::matcher::m_GetAllDefinitions ( Matcher  innerMatcher,
int64_t  maxDepth 
)
inline

Matches all transitive defs of a top-level operation up to N levels.

Definition at line 207 of file SliceMatchers.h.

◆ m_GetDefinitions()

template<typename Matcher >
BackwardSliceMatcher<Matcher> mlir::query::matcher::m_GetDefinitions ( Matcher  innerMatcher,
int64_t  maxDepth,
bool  inclusive,
bool  omitBlockArguments,
bool  omitUsesFromAbove 
)
inline

Matches transitive defs of a top-level operation up to N levels.

Definition at line 197 of file SliceMatchers.h.

◆ m_GetDefinitionsByPredicate()

template<typename BaseMatcher , typename Filter >
PredicateBackwardSliceMatcher<BaseMatcher, Filter> mlir::query::matcher::m_GetDefinitionsByPredicate ( BaseMatcher  innerMatcher,
Filter  filterMatcher,
bool  inclusive,
bool  omitBlockArguments,
bool  omitUsesFromAbove 
)
inline

Matches all transitive defs of a top-level operation and stops where filterMatcher rejects.

Definition at line 218 of file SliceMatchers.h.

◆ m_GetUsersByPredicate()

template<typename BaseMatcher , typename Filter >
PredicateForwardSliceMatcher<BaseMatcher, Filter> mlir::query::matcher::m_GetUsersByPredicate ( BaseMatcher  innerMatcher,
Filter  filterMatcher,
bool  inclusive 
)
inline

Matches all users of a top-level operation and stops where filterMatcher rejects.

Definition at line 230 of file SliceMatchers.h.