|
template<typename GetEndomorphismOpOperandFnArg , typename GetEndomorphismOpResultFnArg , typename GetAlgebraicOpOperandsFnArg , typename GetAlgebraicOpResultFnArg , typename IsEndomorphismOpFnArg , typename IsAlgebraicOpFnArg , typename... RewritePatternArgs> |
| EndomorphismSimplification (GetEndomorphismOpOperandFnArg &&getEndomorphismOpOperand, GetEndomorphismOpResultFnArg &&getEndomorphismOpResult, GetAlgebraicOpOperandsFnArg &&getAlgebraicOpOperands, GetAlgebraicOpResultFnArg &&getAlgebraicOpResult, IsEndomorphismOpFnArg &&isEndomorphismOp, IsAlgebraicOpFnArg &&isAlgebraicOp, RewritePatternArgs &&...args) |
|
| HomomorphismSimplification (GetHomomorphismOpOperandFnArg &&getHomomorphismOpOperand, GetHomomorphismOpResultFnArg &&getHomomorphismOpResult, GetSourceAlgebraicOpOperandsFnArg &&getSourceAlgebraicOpOperands, GetSourceAlgebraicOpResultFnArg &&getSourceAlgebraicOpResult, GetTargetAlgebraicOpResultFnArg &&getTargetAlgebraicOpResult, IsHomomorphismOpFnArg &&isHomomorphismOp, IsSourceAlgebraicOpFnArg &&isSourceAlgebraicOp, CreateTargetAlgebraicOpFnArg &&createTargetAlgebraicOpFn, RewritePatternArgs &&...args) |
|
LogicalResult | matchAndRewrite (Operation *op, PatternRewriter &rewriter) const override |
| Attempt to match against code rooted at the specified operation, which is the same operation code as getRootKind(). More...
|
|
virtual | ~RewritePattern ()=default |
|
virtual void | rewrite (Operation *op, PatternRewriter &rewriter) const |
| Rewrite the IR rooted at the specified operation with the result of this pattern, generating any new operations with the specified builder. More...
|
|
virtual LogicalResult | match (Operation *op) const |
| Attempt to match against code rooted at the specified operation, which is the same operation code as getRootKind(). More...
|
|
ArrayRef< OperationName > | getGeneratedOps () const |
| Return a list of operations that may be generated when rewriting an operation instance with this pattern. More...
|
|
std::optional< OperationName > | getRootKind () const |
| Return the root node that this pattern matches. More...
|
|
std::optional< TypeID > | getRootInterfaceID () const |
| Return the interface ID used to match the root operation of this pattern. More...
|
|
std::optional< TypeID > | getRootTraitID () const |
| Return the trait ID used to match the root operation of this pattern. More...
|
|
PatternBenefit | getBenefit () const |
| Return the benefit (the inverse of "cost") of matching this pattern. More...
|
|
bool | hasBoundedRewriteRecursion () const |
| Returns true if this pattern is known to result in recursive application, i.e. More...
|
|
MLIRContext * | getContext () const |
| Return the MLIRContext used to create this pattern. More...
|
|
StringRef | getDebugName () const |
| Return a readable name for this pattern. More...
|
|
void | setDebugName (StringRef name) |
| Set the human readable debug name used for this pattern. More...
|
|
ArrayRef< StringRef > | getDebugLabels () const |
| Return the set of debug labels attached to this pattern. More...
|
|
void | addDebugLabels (ArrayRef< StringRef > labels) |
| Add the provided debug labels to this pattern. More...
|
|
void | addDebugLabels (StringRef label) |
|
|
template<typename T , typename... Args> |
static std::unique_ptr< T > | create (Args &&...args) |
| This method provides a convenient interface for creating and initializing derived rewrite patterns of the given type T . More...
|
|
| Pattern (StringRef rootName, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) |
| Inherit the base constructors from Pattern . More...
|
|
| Pattern (MatchAnyOpTypeTag tag, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) |
| Inherit the base constructors from Pattern . More...
|
|
| Pattern (MatchInterfaceOpTypeTag tag, TypeID interfaceID, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) |
| Inherit the base constructors from Pattern . More...
|
|
| Pattern (MatchTraitOpTypeTag tag, TypeID traitID, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) |
| Inherit the base constructors from Pattern . More...
|
|
| Pattern (StringRef rootName, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) |
| Construct a pattern with a certain benefit that matches the operation with the given root name. More...
|
|
| Pattern (MatchAnyOpTypeTag tag, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) |
| Construct a pattern that may match any operation type. More...
|
|
| Pattern (MatchInterfaceOpTypeTag tag, TypeID interfaceID, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) |
| Construct a pattern that may match any operation that implements the interface defined by the provided interfaceID . More...
|
|
| Pattern (MatchTraitOpTypeTag tag, TypeID traitID, PatternBenefit benefit, MLIRContext *context, ArrayRef< StringRef > generatedNames={}) |
| Construct a pattern that may match any operation that implements the trait defined by the provided traitID . More...
|
|
void | setHasBoundedRewriteRecursion (bool hasBoundedRecursionArg=true) |
| Set the flag detailing if this pattern has bounded rewrite recursion or not. More...
|
|
template<typename GetEndomorphismOpOperandFn, typename GetEndomorphismOpResultFn, typename GetAlgebraicOpOperandsFn, typename GetAlgebraicOpResultFn, typename IsEndomorphismOpFn, typename IsAlgebraicOpFn>
struct mlir::EndomorphismSimplification< GetEndomorphismOpOperandFn, GetEndomorphismOpResultFn, GetAlgebraicOpOperandsFn, GetAlgebraicOpResultFn, IsEndomorphismOpFn, IsAlgebraicOpFn >
Definition at line 56 of file EndomorphismSimplification.h.
template<typename GetEndomorphismOpOperandFn , typename GetEndomorphismOpResultFn , typename GetAlgebraicOpOperandsFn , typename GetAlgebraicOpResultFn , typename IsEndomorphismOpFn , typename IsAlgebraicOpFn >
template<typename GetEndomorphismOpOperandFnArg , typename GetEndomorphismOpResultFnArg , typename GetAlgebraicOpOperandsFnArg , typename GetAlgebraicOpResultFnArg , typename IsEndomorphismOpFnArg , typename IsAlgebraicOpFnArg , typename... RewritePatternArgs>
mlir::EndomorphismSimplification< GetEndomorphismOpOperandFn, GetEndomorphismOpResultFn, GetAlgebraicOpOperandsFn, GetAlgebraicOpResultFn, IsEndomorphismOpFn, IsAlgebraicOpFn >::EndomorphismSimplification |
( |
GetEndomorphismOpOperandFnArg && |
getEndomorphismOpOperand, |
|
|
GetEndomorphismOpResultFnArg && |
getEndomorphismOpResult, |
|
|
GetAlgebraicOpOperandsFnArg && |
getAlgebraicOpOperands, |
|
|
GetAlgebraicOpResultFnArg && |
getAlgebraicOpResult, |
|
|
IsEndomorphismOpFnArg && |
isEndomorphismOp, |
|
|
IsAlgebraicOpFnArg && |
isAlgebraicOp, |
|
|
RewritePatternArgs &&... |
args |
|
) |
| |
|
inline |