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