@@ -538,15 +538,8 @@ class ConversionPattern : public RewritePattern {
538538 ConversionPatternRewriter &rewriter) const {
539539 llvm_unreachable (" unimplemented rewrite" );
540540 }
541- virtual void rewrite (Operation *op, ArrayRef<ValueRange> operands,
542- ConversionPatternRewriter &rewriter) const {
543- rewrite (op, getOneToOneAdaptorOperands (operands), rewriter);
544- }
545541
546542 // / Hook for derived classes to implement combined matching and rewriting.
547- // / This overload supports only 1:1 replacements. The 1:N overload is called
548- // / by the driver. By default, it calls this 1:1 overload or reports a fatal
549- // / error if 1:N replacements were found.
550543 virtual LogicalResult
551544 matchAndRewrite (Operation *op, ArrayRef<Value> operands,
552545 ConversionPatternRewriter &rewriter) const {
@@ -556,14 +549,6 @@ class ConversionPattern : public RewritePattern {
556549 return success ();
557550 }
558551
559- // / Hook for derived classes to implement combined matching and rewriting.
560- // / This overload supports 1:N replacements.
561- virtual LogicalResult
562- matchAndRewrite (Operation *op, ArrayRef<ValueRange> operands,
563- ConversionPatternRewriter &rewriter) const {
564- return matchAndRewrite (op, getOneToOneAdaptorOperands (operands), rewriter);
565- }
566-
567552 // / Attempt to match and rewrite the IR root at the specified operation.
568553 LogicalResult matchAndRewrite (Operation *op,
569554 PatternRewriter &rewriter) const final ;
@@ -590,15 +575,6 @@ class ConversionPattern : public RewritePattern {
590575 : RewritePattern(std::forward<Args>(args)...),
591576 typeConverter (&typeConverter) {}
592577
593- // / Given an array of value ranges, which are the inputs to a 1:N adaptor,
594- // / try to extract the single value of each range to construct a the inputs
595- // / for a 1:1 adaptor.
596- // /
597- // / This function produces a fatal error if at least one range has 0 or
598- // / more than 1 value: "pattern 'name' does not support 1:N conversion"
599- SmallVector<Value>
600- getOneToOneAdaptorOperands (ArrayRef<ValueRange> operands) const ;
601-
602578protected:
603579 // / An optional type converter for use by this pattern.
604580 const TypeConverter *typeConverter = nullptr ;
@@ -614,8 +590,6 @@ template <typename SourceOp>
614590class OpConversionPattern : public ConversionPattern {
615591public:
616592 using OpAdaptor = typename SourceOp::Adaptor;
617- using OneToNOpAdaptor =
618- typename SourceOp::template GenericAdaptor<ArrayRef<ValueRange>>;
619593
620594 OpConversionPattern (MLIRContext *context, PatternBenefit benefit = 1 )
621595 : ConversionPattern(SourceOp::getOperationName(), benefit, context) {}
@@ -634,24 +608,12 @@ class OpConversionPattern : public ConversionPattern {
634608 auto sourceOp = cast<SourceOp>(op);
635609 rewrite (sourceOp, OpAdaptor (operands, sourceOp), rewriter);
636610 }
637- void rewrite (Operation *op, ArrayRef<ValueRange> operands,
638- ConversionPatternRewriter &rewriter) const final {
639- auto sourceOp = cast<SourceOp>(op);
640- rewrite (sourceOp, OneToNOpAdaptor (operands, sourceOp), rewriter);
641- }
642611 LogicalResult
643612 matchAndRewrite (Operation *op, ArrayRef<Value> operands,
644613 ConversionPatternRewriter &rewriter) const final {
645614 auto sourceOp = cast<SourceOp>(op);
646615 return matchAndRewrite (sourceOp, OpAdaptor (operands, sourceOp), rewriter);
647616 }
648- LogicalResult
649- matchAndRewrite (Operation *op, ArrayRef<ValueRange> operands,
650- ConversionPatternRewriter &rewriter) const final {
651- auto sourceOp = cast<SourceOp>(op);
652- return matchAndRewrite (sourceOp, OneToNOpAdaptor (operands, sourceOp),
653- rewriter);
654- }
655617
656618 // / Rewrite and Match methods that operate on the SourceOp type. These must be
657619 // / overridden by the derived pattern class.
@@ -662,12 +624,6 @@ class OpConversionPattern : public ConversionPattern {
662624 ConversionPatternRewriter &rewriter) const {
663625 llvm_unreachable (" must override matchAndRewrite or a rewrite method" );
664626 }
665- virtual void rewrite (SourceOp op, OneToNOpAdaptor adaptor,
666- ConversionPatternRewriter &rewriter) const {
667- SmallVector<Value> oneToOneOperands =
668- getOneToOneAdaptorOperands (adaptor.getOperands ());
669- rewrite (op, OpAdaptor (oneToOneOperands, adaptor), rewriter);
670- }
671627 virtual LogicalResult
672628 matchAndRewrite (SourceOp op, OpAdaptor adaptor,
673629 ConversionPatternRewriter &rewriter) const {
@@ -676,13 +632,6 @@ class OpConversionPattern : public ConversionPattern {
676632 rewrite (op, adaptor, rewriter);
677633 return success ();
678634 }
679- virtual LogicalResult
680- matchAndRewrite (SourceOp op, OneToNOpAdaptor adaptor,
681- ConversionPatternRewriter &rewriter) const {
682- SmallVector<Value> oneToOneOperands =
683- getOneToOneAdaptorOperands (adaptor.getOperands ());
684- return matchAndRewrite (op, OpAdaptor (oneToOneOperands, adaptor), rewriter);
685- }
686635
687636private:
688637 using ConversionPattern::matchAndRewrite;
@@ -708,31 +657,18 @@ class OpInterfaceConversionPattern : public ConversionPattern {
708657 ConversionPatternRewriter &rewriter) const final {
709658 rewrite (cast<SourceOp>(op), operands, rewriter);
710659 }
711- void rewrite (Operation *op, ArrayRef<ValueRange> operands,
712- ConversionPatternRewriter &rewriter) const final {
713- rewrite (cast<SourceOp>(op), operands, rewriter);
714- }
715660 LogicalResult
716661 matchAndRewrite (Operation *op, ArrayRef<Value> operands,
717662 ConversionPatternRewriter &rewriter) const final {
718663 return matchAndRewrite (cast<SourceOp>(op), operands, rewriter);
719664 }
720- LogicalResult
721- matchAndRewrite (Operation *op, ArrayRef<ValueRange> operands,
722- ConversionPatternRewriter &rewriter) const final {
723- return matchAndRewrite (cast<SourceOp>(op), operands, rewriter);
724- }
725665
726666 // / Rewrite and Match methods that operate on the SourceOp type. These must be
727667 // / overridden by the derived pattern class.
728668 virtual void rewrite (SourceOp op, ArrayRef<Value> operands,
729669 ConversionPatternRewriter &rewriter) const {
730670 llvm_unreachable (" must override matchAndRewrite or a rewrite method" );
731671 }
732- virtual void rewrite (SourceOp op, ArrayRef<ValueRange> operands,
733- ConversionPatternRewriter &rewriter) const {
734- rewrite (op, getOneToOneAdaptorOperands (operands), rewriter);
735- }
736672 virtual LogicalResult
737673 matchAndRewrite (SourceOp op, ArrayRef<Value> operands,
738674 ConversionPatternRewriter &rewriter) const {
@@ -741,11 +677,6 @@ class OpInterfaceConversionPattern : public ConversionPattern {
741677 rewrite (op, operands, rewriter);
742678 return success ();
743679 }
744- virtual LogicalResult
745- matchAndRewrite (SourceOp op, ArrayRef<ValueRange> operands,
746- ConversionPatternRewriter &rewriter) const {
747- return matchAndRewrite (op, getOneToOneAdaptorOperands (operands), rewriter);
748- }
749680
750681private:
751682 using ConversionPattern::matchAndRewrite;
0 commit comments