9 #ifndef MLIR_TRANSFORMS_SIMPLIFY_ENDOMORPHISM_H_
10 #define MLIR_TRANSFORMS_SIMPLIFY_ENDOMORPHISM_H_
20 return rewriter.
clone(*op, operandsRemapping);
52 template <
typename GetEndomorphismOpOperandFn,
53 typename GetEndomorphismOpResultFn,
typename GetAlgebraicOpOperandsFn,
54 typename GetAlgebraicOpResultFn,
typename IsEndomorphismOpFn,
55 typename IsAlgebraicOpFn>
58 GetEndomorphismOpOperandFn, GetEndomorphismOpResultFn,
59 GetAlgebraicOpOperandsFn, GetAlgebraicOpResultFn,
60 GetAlgebraicOpResultFn, IsEndomorphismOpFn, IsAlgebraicOpFn,
61 detail::CreateAlgebraicOpForEndomorphismSimplification> {
62 template <
typename GetEndomorphismOpOperandFnArg,
63 typename GetEndomorphismOpResultFnArg,
64 typename GetAlgebraicOpOperandsFnArg,
65 typename GetAlgebraicOpResultFnArg,
typename IsEndomorphismOpFnArg,
66 typename IsAlgebraicOpFnArg,
typename... RewritePatternArgs>
68 GetEndomorphismOpOperandFnArg &&getEndomorphismOpOperand,
69 GetEndomorphismOpResultFnArg &&getEndomorphismOpResult,
70 GetAlgebraicOpOperandsFnArg &&getAlgebraicOpOperands,
71 GetAlgebraicOpResultFnArg &&getAlgebraicOpResult,
72 IsEndomorphismOpFnArg &&isEndomorphismOp,
73 IsAlgebraicOpFnArg &&isAlgebraicOp, RewritePatternArgs &&...args)
75 GetEndomorphismOpOperandFn, GetEndomorphismOpResultFn,
76 GetAlgebraicOpOperandsFn, GetAlgebraicOpResultFn,
77 GetAlgebraicOpResultFn, IsEndomorphismOpFn, IsAlgebraicOpFn,
78 detail::CreateAlgebraicOpForEndomorphismSimplification>(
79 std::forward<GetEndomorphismOpOperandFnArg>(
80 getEndomorphismOpOperand),
81 std::forward<GetEndomorphismOpResultFnArg>(getEndomorphismOpResult),
82 std::forward<GetAlgebraicOpOperandsFnArg>(getAlgebraicOpOperands),
83 std::forward<GetAlgebraicOpResultFnArg>(getAlgebraicOpResult),
84 std::forward<GetAlgebraicOpResultFnArg>(getAlgebraicOpResult),
85 std::forward<IsEndomorphismOpFnArg>(isEndomorphismOp),
86 std::forward<IsAlgebraicOpFnArg>(isAlgebraicOp),
87 detail::CreateAlgebraicOpForEndomorphismSimplification(),
88 std::forward<RewritePatternArgs>(args)...) {}
This is a utility class for mapping one set of IR entities to another.
Operation * clone(Operation &op, IRMapping &mapper)
Creates a deep copy of the specified operation, remapping any operands that use values outside of the...
Operation is the basic unit of execution within MLIR.
A special type of RewriterBase that coordinates the application of a rewrite pattern on the current I...
Include the generated interface declarations.
EndomorphismSimplification(GetEndomorphismOpOperandFnArg &&getEndomorphismOpOperand, GetEndomorphismOpResultFnArg &&getEndomorphismOpResult, GetAlgebraicOpOperandsFnArg &&getAlgebraicOpOperands, GetAlgebraicOpResultFnArg &&getAlgebraicOpResult, IsEndomorphismOpFnArg &&isEndomorphismOp, IsAlgebraicOpFnArg &&isAlgebraicOp, RewritePatternArgs &&...args)
Operation * operator()(Operation *op, IRMapping &operandsRemapping, PatternRewriter &rewriter) const