NFC: Update usages of OwningRewritePatternList to pass by & instead of &&.
authorRiver Riddle <riverriddle@google.com>
Sat, 10 Aug 2019 00:20:02 +0000 (17:20 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Sat, 10 Aug 2019 00:20:29 +0000 (17:20 -0700)
This will allow for reusing the same pattern list, which may be costly to continually reconstruct, on multiple invocations.

PiperOrigin-RevId: 262664599

23 files changed:
mlir/examples/Linalg/Linalg1/lib/ConvertToLLVMDialect.cpp
mlir/examples/Linalg/Linalg3/lib/ConvertToLLVMDialect.cpp
mlir/examples/Linalg/Linalg3/lib/Transforms.cpp
mlir/examples/toy/Ch5/mlir/EarlyLowering.cpp
mlir/examples/toy/Ch5/mlir/LateLowering.cpp
mlir/include/mlir/IR/PatternMatch.h
mlir/include/mlir/Transforms/DialectConversion.h
mlir/lib/Conversion/ControlFlowToCFG/ConvertControlFlowToCFG.cpp
mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
mlir/lib/Conversion/StandardToLLVM/ConvertStandardToLLVM.cpp
mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.cpp
mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp
mlir/lib/Dialect/QuantOps/Transforms/ConvertConst.cpp
mlir/lib/Dialect/QuantOps/Transforms/ConvertSimQuant.cpp
mlir/lib/Linalg/Transforms/LowerToLLVMDialect.cpp
mlir/lib/Linalg/Transforms/LowerToLoops.cpp
mlir/lib/Quantizer/Transforms/RemoveInstrumentationPass.cpp
mlir/lib/Transforms/Canonicalizer.cpp
mlir/lib/Transforms/DialectConversion.cpp
mlir/lib/Transforms/LowerAffine.cpp
mlir/lib/Transforms/LowerVectorTransfers.cpp
mlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
mlir/test/lib/TestDialect/TestPatterns.cpp

index 58e6159..ec7e0fe 100644 (file)
@@ -428,7 +428,7 @@ LogicalResult linalg::convertToLLVM(mlir::ModuleOp module) {
   target.addLegalOp<ModuleOp, ModuleTerminatorOp>();
   target.addDynamicallyLegalOp<FuncOp>(
       [&](FuncOp op) { return converter.isSignatureLegal(op.getType()); });
-  return applyFullConversion(module, target, std::move(patterns), &converter);
+  return applyFullConversion(module, target, patterns, &converter);
 }
 
 namespace {
index e4a401e..8de1ad6 100644 (file)
@@ -164,8 +164,7 @@ LogicalResult linalg::convertLinalg3ToLLVM(ModuleOp module) {
   target.addLegalOp<ModuleOp, ModuleTerminatorOp>();
   target.addDynamicallyLegalOp<FuncOp>(
       [&](FuncOp op) { return converter.isSignatureLegal(op.getType()); });
-  if (failed(
-          applyFullConversion(module, target, std::move(patterns), &converter)))
+  if (failed(applyFullConversion(module, target, patterns, &converter)))
     return failure();
 
   return success();
index 9dd8a42..7fc4bb5 100644 (file)
@@ -263,7 +263,7 @@ struct LowerLinalgLoadStorePass
     auto *context = &getContext();
     patterns.insert<Rewriter<linalg::LoadOp>, Rewriter<linalg::StoreOp>>(
         context);
-    applyPatternsGreedily(getFunction(), std::move(patterns));
+    applyPatternsGreedily(getFunction(), patterns);
   }
 };
 
index 72bc289..015a3fd 100644 (file)
@@ -133,8 +133,7 @@ struct EarlyLoweringPass : public FunctionPass<EarlyLoweringPass> {
 
     OwningRewritePatternList patterns;
     patterns.insert<MulOpConversion>(&getContext());
-    if (failed(applyPartialConversion(getFunction(), target,
-                                      std::move(patterns)))) {
+    if (failed(applyPartialConversion(getFunction(), target, patterns))) {
       emitError(mlir::UnknownLoc::get(&getContext()), "Error lowering Toy\n");
       signalPassFailure();
     }
index 8b2cc21..c60dbd7 100644 (file)
@@ -366,8 +366,8 @@ struct LateLoweringPass : public ModulePass<LateLoweringPass> {
     target.addDynamicallyLegalOp<FuncOp>([&](FuncOp op) {
       return typeConverter.isSignatureLegal(op.getType());
     });
-    if (failed(applyPartialConversion(
-            getModule(), target, std::move(toyPatterns), &typeConverter))) {
+    if (failed(applyPartialConversion(getModule(), target, toyPatterns,
+                                      &typeConverter))) {
       emitError(UnknownLoc::get(getModule().getContext()),
                 "Error lowering Toy\n");
       signalPassFailure();
index e3897b1..4f1e50b 100644 (file)
@@ -402,6 +402,7 @@ public:
   PatternListT::iterator end() { return patterns.end(); }
   PatternListT::const_iterator begin() const { return patterns.begin(); }
   PatternListT::const_iterator end() const { return patterns.end(); }
+  void clear() { patterns.clear(); }
 
   //===--------------------------------------------------------------------===//
   // Pattern Insertion
@@ -456,7 +457,7 @@ private:
 /// the result operation regions.
 /// Note: This does not apply patterns to the top-level operation itself.
 ///
-bool applyPatternsGreedily(Operation *op, OwningRewritePatternList &&patterns);
+bool applyPatternsGreedily(Operation *op, OwningRewritePatternList &patterns);
 
 } // end namespace mlir
 
index 0d69ed0..3a62c5f 100644 (file)
@@ -471,10 +471,10 @@ private:
 /// regions are also converted.
 LLVM_NODISCARD LogicalResult applyPartialConversion(
     ArrayRef<Operation *> ops, ConversionTarget &target,
-    OwningRewritePatternList &&patterns, TypeConverter *converter = nullptr);
+    OwningRewritePatternList &patterns, TypeConverter *converter = nullptr);
 LLVM_NODISCARD LogicalResult applyPartialConversion(
-    Operation *op, ConversionTarget &target,
-    OwningRewritePatternList &&patterns, TypeConverter *converter = nullptr);
+    Operation *op, ConversionTarget &target, OwningRewritePatternList &patterns,
+    TypeConverter *converter = nullptr);
 
 /// Apply a complete conversion on the given operations, and all nested
 /// operations. This method returns failure if the conversion of any operation
@@ -483,10 +483,10 @@ LLVM_NODISCARD LogicalResult applyPartialConversion(
 /// regions are also converted.
 LLVM_NODISCARD LogicalResult applyFullConversion(
     ArrayRef<Operation *> ops, ConversionTarget &target,
-    OwningRewritePatternList &&patterns, TypeConverter *converter = nullptr);
+    OwningRewritePatternList &patterns, TypeConverter *converter = nullptr);
 LLVM_NODISCARD LogicalResult applyFullConversion(
-    Operation *op, ConversionTarget &target,
-    OwningRewritePatternList &&patterns, TypeConverter *converter = nullptr);
+    Operation *op, ConversionTarget &target, OwningRewritePatternList &patterns,
+    TypeConverter *converter = nullptr);
 
 /// Apply an analysis conversion on the given operations, and all nested
 /// operations. This method analyzes which operations would be successfully
@@ -500,12 +500,11 @@ LLVM_NODISCARD LogicalResult applyFullConversion(
 /// considered for conversion.
 LLVM_NODISCARD LogicalResult applyAnalysisConversion(
     ArrayRef<Operation *> ops, ConversionTarget &target,
-    OwningRewritePatternList &&patterns, DenseSet<Operation *> &convertedOps,
+    OwningRewritePatternList &patterns, DenseSet<Operation *> &convertedOps,
     TypeConverter *converter = nullptr);
 LLVM_NODISCARD LogicalResult applyAnalysisConversion(
-    Operation *op, ConversionTarget &target,
-    OwningRewritePatternList &&patterns, DenseSet<Operation *> &convertedOps,
-    TypeConverter *converter = nullptr);
+    Operation *op, ConversionTarget &target, OwningRewritePatternList &patterns,
+    DenseSet<Operation *> &convertedOps, TypeConverter *converter = nullptr);
 } // end namespace mlir
 
 #endif // MLIR_TRANSFORMS_DIALECTCONVERSION_H_
index 034aa22..9535dc7 100644 (file)
@@ -266,8 +266,7 @@ void ControlFlowToCFGPass::runOnFunction() {
   populateLoopToStdConversionPatterns(patterns, &getContext());
   ConversionTarget target(getContext());
   target.addLegalDialect<StandardOpsDialect>();
-  if (failed(
-          applyPartialConversion(getFunction(), target, std::move(patterns))))
+  if (failed(applyPartialConversion(getFunction(), target, patterns)))
     signalPassFailure();
 }
 
index 58f01fc..c36aee5 100644 (file)
@@ -112,7 +112,7 @@ void GPUToSPIRVPass::runOnModule() {
   target.addDynamicallyLegalOp<FuncOp>(
       [&](FuncOp Op) { return typeConverter.isSignatureLegal(Op.getType()); });
 
-  if (failed(applyFullConversion(spirvModules, target, std::move(patterns),
+  if (failed(applyFullConversion(spirvModules, target, patterns,
                                  &typeConverter))) {
     return signalPassFailure();
   }
index 23acaed..5bb2811 100644 (file)
@@ -1116,8 +1116,7 @@ struct LLVMLoweringPass : public ModulePass<LLVMLoweringPass> {
     target.addDynamicallyLegalOp<FuncOp>([&](FuncOp op) {
       return typeConverter->isSignatureLegal(op.getType());
     });
-    if (failed(applyPartialConversion(m, target, std::move(patterns),
-                                      typeConverter.get())))
+    if (failed(applyPartialConversion(m, target, patterns, &*typeConverter)))
       signalPassFailure();
   }
 
index c2652be..ad2c4b5 100644 (file)
@@ -43,7 +43,7 @@ void ConvertStandardToSPIRVPass::runOnModule() {
   target.addLegalDialect<spirv::SPIRVDialect>();
   target.addLegalOp<FuncOp>();
 
-  if (failed(applyPartialConversion(module, target, std::move(patterns)))) {
+  if (failed(applyPartialConversion(module, target, patterns))) {
     return signalPassFailure();
   }
 }
index d2f3881..e6c351b 100644 (file)
@@ -369,7 +369,7 @@ void LowerUniformRealMathPass::runOnFunction() {
   OwningRewritePatternList patterns;
   auto *context = &getContext();
   patterns.insert<UniformRealAddEwPattern, UniformRealMulEwPattern>(context);
-  applyPatternsGreedily(fn, std::move(patterns));
+  applyPatternsGreedily(fn, patterns);
 }
 
 FunctionPassBase *mlir::fxpmath::createLowerUniformRealMathPass() {
@@ -389,7 +389,7 @@ void LowerUniformCastsPass::runOnFunction() {
   OwningRewritePatternList patterns;
   auto *context = &getContext();
   patterns.insert<UniformDequantizePattern>(context);
-  applyPatternsGreedily(fn, std::move(patterns));
+  applyPatternsGreedily(fn, patterns);
 }
 
 FunctionPassBase *mlir::fxpmath::createLowerUniformCastsPass() {
index 2276fbd..120d0cf 100644 (file)
@@ -109,7 +109,7 @@ void ConvertConstPass::runOnFunction() {
   auto func = getFunction();
   auto *context = &getContext();
   patterns.insert<QuantizedConstRewrite>(context);
-  applyPatternsGreedily(func, std::move(patterns));
+  applyPatternsGreedily(func, patterns);
 }
 
 FunctionPassBase *mlir::quant::createConvertConstPass() {
index 8f5d1b3..dfdce89 100644 (file)
@@ -98,7 +98,7 @@ void ConvertSimulatedQuantPass::runOnFunction() {
   auto func = getFunction();
   auto *context = &getContext();
   patterns.insert<ConstFakeQuantRewrite>(context, &hadFailure);
-  applyPatternsGreedily(func, std::move(patterns));
+  applyPatternsGreedily(func, patterns);
   if (hadFailure)
     signalPassFailure();
 }
index a45f943..84452a2 100644 (file)
@@ -731,8 +731,7 @@ void LowerLinalgToLLVMPass::runOnModule() {
   target.addLegalDialect<LLVM::LLVMDialect>();
   target.addDynamicallyLegalOp<FuncOp>(
       [&](FuncOp op) { return converter.isSignatureLegal(op.getType()); });
-  if (failed(applyPartialConversion(module, target, std::move(patterns),
-                                    &converter))) {
+  if (failed(applyPartialConversion(module, target, patterns, &converter))) {
     signalPassFailure();
   }
 
index af0eefc..afeb5c4 100644 (file)
@@ -385,8 +385,7 @@ void LowerLinalgToLoopsPass::runOnFunction() {
   target.addLegalDialect<AffineOpsDialect>();
   target.addLegalDialect<loop::LoopOpsDialect>();
   target.addLegalDialect<StandardOpsDialect>();
-  if (failed(
-          applyPartialConversion(getFunction(), target, std::move(patterns)))) {
+  if (failed(applyPartialConversion(getFunction(), target, patterns))) {
     signalPassFailure();
   }
 }
index 3de8913..d5fb284 100644 (file)
@@ -63,7 +63,7 @@ void RemoveInstrumentationPass::runOnFunction() {
   patterns.insert<RemoveIdentityOpRewrite<StatisticsOp>,
                   RemoveIdentityOpRewrite<StatisticsRefOp>,
                   RemoveIdentityOpRewrite<CoupledRefOp>>(context);
-  applyPatternsGreedily(func, std::move(patterns));
+  applyPatternsGreedily(func, patterns);
 }
 
 FunctionPassBase *mlir::quantizer::createRemoveInstrumentationPass() {
index 394b3ef..80d8ea9 100644 (file)
@@ -49,7 +49,7 @@ void Canonicalizer::runOnFunction() {
   for (auto *op : context->getRegisteredOperations())
     op->getCanonicalizationPatterns(patterns, context);
 
-  applyPatternsGreedily(func, std::move(patterns));
+  applyPatternsGreedily(func, patterns);
 }
 
 /// Create a Canonicalizer pass.
index 6f264b0..cfb85be 100644 (file)
@@ -1336,17 +1336,17 @@ void ConversionTarget::setLegalityCallback(
 /// possible, ignoring operations that failed to legalize.
 LogicalResult mlir::applyPartialConversion(ArrayRef<Operation *> ops,
                                            ConversionTarget &target,
-                                           OwningRewritePatternList &&patterns,
+                                           OwningRewritePatternList &patterns,
                                            TypeConverter *converter) {
   OperationConverter opConverter(target, patterns, OpConversionMode::Partial);
   return opConverter.convertOperations(ops, converter);
 }
 LogicalResult mlir::applyPartialConversion(Operation *op,
                                            ConversionTarget &target,
-                                           OwningRewritePatternList &&patterns,
+                                           OwningRewritePatternList &patterns,
                                            TypeConverter *converter) {
-  return applyPartialConversion(llvm::makeArrayRef(op), target,
-                                std::move(patterns), converter);
+  return applyPartialConversion(llvm::makeArrayRef(op), target, patterns,
+                                converter);
 }
 
 /// Apply a complete conversion on the given operations, and all nested
@@ -1354,16 +1354,16 @@ LogicalResult mlir::applyPartialConversion(Operation *op,
 /// operation fails.
 LogicalResult mlir::applyFullConversion(ArrayRef<Operation *> ops,
                                         ConversionTarget &target,
-                                        OwningRewritePatternList &&patterns,
+                                        OwningRewritePatternList &patterns,
                                         TypeConverter *converter) {
   OperationConverter opConverter(target, patterns, OpConversionMode::Full);
   return opConverter.convertOperations(ops, converter);
 }
 LogicalResult mlir::applyFullConversion(Operation *op, ConversionTarget &target,
-                                        OwningRewritePatternList &&patterns,
+                                        OwningRewritePatternList &patterns,
                                         TypeConverter *converter) {
-  return applyFullConversion(llvm::makeArrayRef(op), target,
-                             std::move(patterns), converter);
+  return applyFullConversion(llvm::makeArrayRef(op), target, patterns,
+                             converter);
 }
 
 /// Apply an analysis conversion on the given operations, and all nested
@@ -1374,7 +1374,7 @@ LogicalResult mlir::applyFullConversion(Operation *op, ConversionTarget &target,
 /// operations on success and only pre-existing operations are added to the set.
 LogicalResult mlir::applyAnalysisConversion(ArrayRef<Operation *> ops,
                                             ConversionTarget &target,
-                                            OwningRewritePatternList &&patterns,
+                                            OwningRewritePatternList &patterns,
                                             DenseSet<Operation *> &convertedOps,
                                             TypeConverter *converter) {
   OperationConverter opConverter(target, patterns, OpConversionMode::Analysis,
@@ -1383,9 +1383,9 @@ LogicalResult mlir::applyAnalysisConversion(ArrayRef<Operation *> ops,
 }
 LogicalResult mlir::applyAnalysisConversion(Operation *op,
                                             ConversionTarget &target,
-                                            OwningRewritePatternList &&patterns,
+                                            OwningRewritePatternList &patterns,
                                             DenseSet<Operation *> &convertedOps,
                                             TypeConverter *converter) {
-  return applyAnalysisConversion(llvm::makeArrayRef(op), target,
-                                 std::move(patterns), convertedOps, converter);
+  return applyAnalysisConversion(llvm::makeArrayRef(op), target, patterns,
+                                 convertedOps, converter);
 }
index 1c558ef..062134d 100644 (file)
@@ -521,8 +521,7 @@ class LowerAffinePass : public FunctionPass<LowerAffinePass> {
     populateAffineToStdConversionPatterns(patterns, &getContext());
     ConversionTarget target(getContext());
     target.addLegalDialect<loop::LoopOpsDialect, StandardOpsDialect>();
-    if (failed(
-            applyPartialConversion(getFunction(), target, std::move(patterns))))
+    if (failed(applyPartialConversion(getFunction(), target, patterns)))
       signalPassFailure();
   }
 };
index ded0732..e2d5920 100644 (file)
@@ -367,7 +367,7 @@ struct LowerVectorTransfersPass
     patterns.insert<VectorTransferRewriter<vector::VectorTransferReadOp>,
                     VectorTransferRewriter<vector::VectorTransferWriteOp>>(
         context);
-    applyPatternsGreedily(getFunction(), std::move(patterns));
+    applyPatternsGreedily(getFunction(), patterns);
   }
 };
 
index 278a093..d202a37 100644 (file)
@@ -221,7 +221,7 @@ bool GreedyPatternRewriteDriver::simplify(Operation *op, int maxIterations) {
 /// Note: This does not apply patterns to the top-level operation itself.
 ///
 bool mlir::applyPatternsGreedily(Operation *op,
-                                 OwningRewritePatternList &&patterns) {
+                                 OwningRewritePatternList &patterns) {
   // The top-level operation must be known to be isolated from above to
   // prevent performing canonicalizations on operations defined at or above
   // the region containing 'op'.
index ed94eed..666c92f 100644 (file)
@@ -43,7 +43,7 @@ struct TestPatternDriver : public FunctionPass<TestPatternDriver> {
     // Verify named pattern is generated with expected name.
     patterns.insert<TestNamedPatternRule>(&getContext());
 
-    applyPatternsGreedily(getFunction(), std::move(patterns));
+    applyPatternsGreedily(getFunction(), patterns);
   }
 };
 } // end anonymous namespace
@@ -213,8 +213,7 @@ struct TestLegalizePatternDriver
 
     // Handle a partial conversion.
     if (mode == ConversionMode::Partial) {
-      (void)applyPartialConversion(getModule(), target, std::move(patterns),
-                                   &converter);
+      (void)applyPartialConversion(getModule(), target, patterns, &converter);
       return;
     }
 
@@ -223,7 +222,7 @@ struct TestLegalizePatternDriver
 
     // Analyze the convertible operations.
     DenseSet<Operation *> legalizedOps;
-    if (failed(applyAnalysisConversion(getModule(), target, std::move(patterns),
+    if (failed(applyAnalysisConversion(getModule(), target, patterns,
                                        legalizedOps, &converter)))
       return signalPassFailure();