36 changes: 18 additions & 18 deletions mlir/lib/Dialect/Vector/VectorTransforms.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2784,7 +2784,7 @@ struct TransferReadToVectorLoadLowering
// If broadcasting is required and the number of loaded elements is 1 then
// we can create `memref.load` instead of `vector.load`.
loadOp = rewriter.create<memref::LoadOp>(read.getLoc(), read.source(),
read.indices());
read.indices());
} else {
// Otherwise create `vector.load`.
loadOp = rewriter.create<vector::LoadOp>(read.getLoc(),
Expand Down Expand Up @@ -3263,60 +3263,60 @@ struct BubbleUpBitCastForStridedSliceInsert
// TODO: Add pattern to rewrite ExtractSlices(ConstantMaskOp).
// TODO: Add this as DRR pattern.
void mlir::vector::populateVectorToVectorTransformationPatterns(
OwningRewritePatternList &patterns, MLIRContext *context) {
OwningRewritePatternList &patterns) {
patterns.insert<ShapeCastOpDecomposer, ShapeCastOpFolder, TupleGetFolderOp,
TransferReadExtractPattern, TransferWriteInsertPattern>(
context);
patterns.getContext());
}

void mlir::vector::populateSplitVectorTransferPatterns(
OwningRewritePatternList &patterns, MLIRContext *context,
OwningRewritePatternList &patterns,
std::function<bool(Operation *)> ignoreFilter) {
patterns.insert<SplitTransferReadOp, SplitTransferWriteOp>(context,
ignoreFilter);
patterns.insert<SplitTransferReadOp, SplitTransferWriteOp>(
patterns.getContext(), ignoreFilter);
}

void mlir::vector::populateCastAwayVectorLeadingOneDimPatterns(
OwningRewritePatternList &patterns, MLIRContext *context) {
OwningRewritePatternList &patterns) {
patterns.insert<CastAwayExtractStridedSliceLeadingOneDim,
CastAwayInsertStridedSliceLeadingOneDim,
CastAwayTransferReadLeadingOneDim,
CastAwayTransferWriteLeadingOneDim, ShapeCastOpFolder>(
context);
patterns.getContext());
}

void mlir::vector::populateBubbleVectorBitCastOpPatterns(
OwningRewritePatternList &patterns, MLIRContext *context) {
OwningRewritePatternList &patterns) {
patterns.insert<BubbleDownVectorBitCastForExtract,
BubbleDownBitCastForStridedSliceExtract,
BubbleUpBitCastForStridedSliceInsert>(context);
BubbleUpBitCastForStridedSliceInsert>(patterns.getContext());
}

void mlir::vector::populateVectorSlicesLoweringPatterns(
OwningRewritePatternList &patterns, MLIRContext *context) {
patterns.insert<ExtractSlicesOpLowering, InsertSlicesOpLowering>(context);
OwningRewritePatternList &patterns) {
patterns.insert<ExtractSlicesOpLowering, InsertSlicesOpLowering>(
patterns.getContext());
}

void mlir::vector::populateVectorContractLoweringPatterns(
OwningRewritePatternList &patterns, MLIRContext *context,
VectorTransformsOptions parameters) {
OwningRewritePatternList &patterns, VectorTransformsOptions parameters) {
// clang-format off
patterns.insert<BroadcastOpLowering,
CreateMaskOpLowering,
ConstantMaskOpLowering,
OuterProductOpLowering,
ShapeCastOp2DDownCastRewritePattern,
ShapeCastOp2DUpCastRewritePattern,
ShapeCastOpRewritePattern>(context);
ShapeCastOpRewritePattern>(patterns.getContext());
patterns.insert<TransposeOpLowering,
ContractionOpLowering,
ContractionOpToMatmulOpLowering,
ContractionOpToOuterProductOpLowering>(parameters, context);
ContractionOpToOuterProductOpLowering>(parameters, patterns.getContext());
// clang-format on
}

void mlir::vector::populateVectorTransferLoweringPatterns(
OwningRewritePatternList &patterns, MLIRContext *context) {
OwningRewritePatternList &patterns) {
patterns.insert<TransferReadToVectorLoadLowering,
TransferWriteToVectorStoreLowering>(context);
TransferWriteToVectorStoreLowering>(patterns.getContext());
}
12 changes: 5 additions & 7 deletions mlir/lib/Transforms/Bufferize.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,9 @@ class BufferizeCastOp : public OpConversionPattern<memref::BufferCastOp> {
} // namespace

void mlir::populateEliminateBufferizeMaterializationsPatterns(
MLIRContext *context, BufferizeTypeConverter &typeConverter,
OwningRewritePatternList &patterns) {
patterns.insert<BufferizeTensorLoadOp, BufferizeCastOp>(typeConverter,
context);
BufferizeTypeConverter &typeConverter, OwningRewritePatternList &patterns) {
patterns.insert<BufferizeTensorLoadOp, BufferizeCastOp>(
typeConverter, patterns.getContext());
}

namespace {
Expand All @@ -101,11 +100,10 @@ struct FinalizingBufferizePass
auto *context = &getContext();

BufferizeTypeConverter typeConverter;
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(context);
ConversionTarget target(*context);

populateEliminateBufferizeMaterializationsPatterns(context, typeConverter,
patterns);
populateEliminateBufferizeMaterializationsPatterns(typeConverter, patterns);

// If all result types are legal, and all block arguments are legal (ensured
// by func conversion above), then all types in the program are legal.
Expand Down
2 changes: 1 addition & 1 deletion mlir/lib/Transforms/Canonicalizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ struct Canonicalizer : public CanonicalizerBase<Canonicalizer> {
/// Initialize the canonicalizer by building the set of patterns used during
/// execution.
LogicalResult initialize(MLIRContext *context) override {
OwningRewritePatternList owningPatterns;
OwningRewritePatternList owningPatterns(context);
for (auto *op : context->getRegisteredOperations())
op->getCanonicalizationPatterns(owningPatterns, context);
patterns = std::move(owningPatterns);
Expand Down
17 changes: 9 additions & 8 deletions mlir/lib/Transforms/Utils/DialectConversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ computeConversionSet(iterator_range<Region::iterator> region,

/// A utility function to log a successful result for the given reason.
template <typename... Args>
static void logSuccess(llvm::ScopedPrinter &os, StringRef fmt, Args &&...args) {
static void logSuccess(llvm::ScopedPrinter &os, StringRef fmt,
Args &&... args) {
LLVM_DEBUG({
os.unindent();
os.startLine() << "} -> SUCCESS";
Expand All @@ -88,7 +89,8 @@ static void logSuccess(llvm::ScopedPrinter &os, StringRef fmt, Args &&...args) {

/// A utility function to log a failure result for the given reason.
template <typename... Args>
static void logFailure(llvm::ScopedPrinter &os, StringRef fmt, Args &&...args) {
static void logFailure(llvm::ScopedPrinter &os, StringRef fmt,
Args &&... args) {
LLVM_DEBUG({
os.unindent();
os.startLine() << "} -> FAILURE : "
Expand Down Expand Up @@ -2611,15 +2613,14 @@ struct FunctionLikeSignatureConversion : public ConversionPattern {

void mlir::populateFunctionLikeTypeConversionPattern(
StringRef functionLikeOpName, OwningRewritePatternList &patterns,
MLIRContext *ctx, TypeConverter &converter) {
patterns.insert<FunctionLikeSignatureConversion>(functionLikeOpName, ctx,
converter);
TypeConverter &converter) {
patterns.insert<FunctionLikeSignatureConversion>(
functionLikeOpName, patterns.getContext(), converter);
}

void mlir::populateFuncOpTypeConversionPattern(
OwningRewritePatternList &patterns, MLIRContext *ctx,
TypeConverter &converter) {
populateFunctionLikeTypeConversionPattern<FuncOp>(patterns, ctx, converter);
OwningRewritePatternList &patterns, TypeConverter &converter) {
populateFunctionLikeTypeConversionPattern<FuncOp>(patterns, converter);
}

//===----------------------------------------------------------------------===//
Expand Down
2 changes: 1 addition & 1 deletion mlir/lib/Transforms/Utils/LoopUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ LogicalResult mlir::affineForOpBodySkew(AffineForOp forOp,

if (res) {
// Simplify/canonicalize the affine.for.
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(res.getContext());
AffineForOp::getCanonicalizationPatterns(patterns, res.getContext());
bool erased;
(void)applyOpPatternsAndFold(res, std::move(patterns), &erased);
Expand Down
2 changes: 1 addition & 1 deletion mlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ void TestAffineDataCopy::runOnFunction() {
// Promoting single iteration loops could lead to simplification of
// generated load's/store's, and the latter could anyway also be
// canonicalized.
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(&getContext());
for (auto op : copyOps) {
patterns.clear();
if (isa<AffineLoadOp>(op)) {
Expand Down
2 changes: 1 addition & 1 deletion mlir/test/lib/Dialect/SPIRV/TestAvailability.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ void ConvertToTargetEnv::runOnFunction() {

auto target = spirv::SPIRVConversionTarget::get(targetEnv);

OwningRewritePatternList patterns;
OwningRewritePatternList patterns(context);
patterns.insert<ConvertToAtomCmpExchangeWeak, ConvertToBitReverse,
ConvertToGroupNonUniformBallot, ConvertToModule,
ConvertToSubgroupBallot>(context);
Expand Down
4 changes: 2 additions & 2 deletions mlir/test/lib/Dialect/SPIRV/TestGLSLCanonicalization.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ class TestGLSLCanonicalizationPass
} // namespace

void TestGLSLCanonicalizationPass::runOnOperation() {
OwningRewritePatternList patterns;
spirv::populateSPIRVGLSLCanonicalizationPatterns(patterns, &getContext());
OwningRewritePatternList patterns(&getContext());
spirv::populateSPIRVGLSLCanonicalizationPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getOperation(), std::move(patterns));
}

Expand Down
23 changes: 10 additions & 13 deletions mlir/test/lib/Dialect/Test/TestPatterns.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ struct FoldingPattern : public RewritePattern {

struct TestPatternDriver : public PassWrapper<TestPatternDriver, FunctionPass> {
void runOnFunction() override {
mlir::OwningRewritePatternList patterns;
mlir::OwningRewritePatternList patterns(&getContext());
populateWithGenerated(&getContext(), patterns);

// Verify named pattern is generated with expected name.
Expand Down Expand Up @@ -557,7 +557,7 @@ struct TestLegalizePatternDriver

void runOnOperation() override {
TestTypeConverter converter;
mlir::OwningRewritePatternList patterns;
mlir::OwningRewritePatternList patterns(&getContext());
populateWithGenerated(&getContext(), patterns);
patterns.insert<
TestRegionRewriteBlockMovement, TestRegionRewriteUndo, TestCreateBlock,
Expand All @@ -568,10 +568,8 @@ struct TestLegalizePatternDriver
TestNonRootReplacement, TestBoundedRecursiveRewrite,
TestNestedOpCreationUndoRewrite>(&getContext());
patterns.insert<TestDropOpSignatureConversion>(&getContext(), converter);
mlir::populateFuncOpTypeConversionPattern(patterns, &getContext(),
converter);
mlir::populateCallOpTypeConversionPattern(patterns, &getContext(),
converter);
mlir::populateFuncOpTypeConversionPattern(patterns, converter);
mlir::populateCallOpTypeConversionPattern(patterns, converter);

// Define the conversion target used for the test.
ConversionTarget target(getContext());
Expand Down Expand Up @@ -700,7 +698,7 @@ struct OneVResOneVOperandOp1Converter
struct TestRemappedValue
: public mlir::PassWrapper<TestRemappedValue, FunctionPass> {
void runOnFunction() override {
mlir::OwningRewritePatternList patterns;
mlir::OwningRewritePatternList patterns(&getContext());
patterns.insert<OneVResOneVOperandOp1Converter>(&getContext());

mlir::ConversionTarget target(getContext());
Expand Down Expand Up @@ -742,7 +740,7 @@ struct RemoveTestDialectOps : public RewritePattern {
struct TestUnknownRootOpDriver
: public mlir::PassWrapper<TestUnknownRootOpDriver, FunctionPass> {
void runOnFunction() override {
mlir::OwningRewritePatternList patterns;
mlir::OwningRewritePatternList patterns(&getContext());
patterns.insert<RemoveTestDialectOps>();

mlir::ConversionTarget target(getContext());
Expand Down Expand Up @@ -878,12 +876,11 @@ struct TestTypeConversionDriver
});

// Initialize the set of rewrite patterns.
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(&getContext());
patterns.insert<TestTypeConsumerForward, TestTypeConversionProducer,
TestSignatureConversionUndo>(converter, &getContext());
patterns.insert<TestTypeConversionAnotherProducer>(&getContext());
mlir::populateFuncOpTypeConversionPattern(patterns, &getContext(),
converter);
mlir::populateFuncOpTypeConversionPattern(patterns, converter);

if (failed(applyPartialConversion(getOperation(), target,
std::move(patterns))))
Expand Down Expand Up @@ -966,8 +963,8 @@ struct TestMergeBlocksPatternDriver
: public PassWrapper<TestMergeBlocksPatternDriver,
OperationPass<ModuleOp>> {
void runOnOperation() override {
mlir::OwningRewritePatternList patterns;
MLIRContext *context = &getContext();
mlir::OwningRewritePatternList patterns(context);
patterns
.insert<TestMergeBlock, TestUndoBlocksMerge, TestMergeSingleBlockOps>(
context);
Expand Down Expand Up @@ -1035,8 +1032,8 @@ struct TestSelectiveReplacementPatternDriver
: public PassWrapper<TestSelectiveReplacementPatternDriver,
OperationPass<>> {
void runOnOperation() override {
mlir::OwningRewritePatternList patterns;
MLIRContext *context = &getContext();
mlir::OwningRewritePatternList patterns(context);
patterns.insert<TestSelectiveOpReplacementPattern>(context);
(void)applyPatternsAndFoldGreedily(getOperation()->getRegions(),
std::move(patterns));
Expand Down
2 changes: 1 addition & 1 deletion mlir/test/lib/Dialect/Test/TestTraits.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ namespace {
struct TestTraitFolder : public PassWrapper<TestTraitFolder, FunctionPass> {
void runOnFunction() override {
(void)applyPatternsAndFoldGreedily(getFunction(),
OwningRewritePatternList());
OwningRewritePatternList(&getContext()));
}
};
} // end anonymous namespace
Expand Down
2 changes: 1 addition & 1 deletion mlir/test/lib/Dialect/Tosa/TosaTestPasses.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,8 +183,8 @@ struct TosaTestQuantUtilAPI
};

void TosaTestQuantUtilAPI::runOnFunction() {
OwningRewritePatternList patterns;
auto *ctx = &getContext();
OwningRewritePatternList patterns(ctx);
auto func = getFunction();

patterns.insert<ConvertTosaNegateOp>(ctx);
Expand Down
10 changes: 5 additions & 5 deletions mlir/test/lib/Transforms/TestConvVectorization.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ void TestConvVectorization::runOnOperation() {
VectorTransformsOptions vectorTransformsOptions{
VectorContractLowering::Dot, VectorTransposeLowering::EltWise};

OwningRewritePatternList vectorTransferPatterns;
OwningRewritePatternList vectorTransferPatterns(context);
// Pattern is not applied because rank-reducing vector transfer is not yet
// supported as can be seen in splitFullAndPartialTransferPrecondition,
// VectorTransforms.cpp
Expand All @@ -106,15 +106,15 @@ void TestConvVectorization::runOnOperation() {
llvm_unreachable("Unexpected failure in linalg to loops pass.");

// Programmatic controlled lowering of vector.contract only.
OwningRewritePatternList vectorContractLoweringPatterns;
OwningRewritePatternList vectorContractLoweringPatterns(context);
populateVectorContractLoweringPatterns(vectorContractLoweringPatterns,
context, vectorTransformsOptions);
vectorTransformsOptions);
(void)applyPatternsAndFoldGreedily(module,
std::move(vectorContractLoweringPatterns));

// Programmatic controlled lowering of vector.transfer only.
OwningRewritePatternList vectorToLoopsPatterns;
populateVectorToSCFConversionPatterns(vectorToLoopsPatterns, context,
OwningRewritePatternList vectorToLoopsPatterns(context);
populateVectorToSCFConversionPatterns(vectorToLoopsPatterns,
VectorTransferToSCFOptions());
(void)applyPatternsAndFoldGreedily(module, std::move(vectorToLoopsPatterns));

Expand Down
10 changes: 5 additions & 5 deletions mlir/test/lib/Transforms/TestConvertCallOp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ class TestConvertCallOp
ModuleOp m = getOperation();

// Populate type conversions.
LLVMTypeConverter type_converter(m.getContext());
type_converter.addConversion([&](test::TestType type) {
LLVMTypeConverter typeConverter(m.getContext());
typeConverter.addConversion([&](test::TestType type) {
return LLVM::LLVMPointerType::get(IntegerType::get(m.getContext(), 8));
});

// Populate patterns.
OwningRewritePatternList patterns;
populateStdToLLVMConversionPatterns(type_converter, patterns);
patterns.insert<TestTypeProducerOpConverter>(type_converter);
OwningRewritePatternList patterns(m.getContext());
populateStdToLLVMConversionPatterns(typeConverter, patterns);
patterns.insert<TestTypeProducerOpConverter>(typeConverter);

// Set target.
ConversionTarget target(getContext());
Expand Down
2 changes: 1 addition & 1 deletion mlir/test/lib/Transforms/TestDecomposeCallGraphTypes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ struct TestDecomposeCallGraphTypes
TypeConverter typeConverter;
ConversionTarget target(*context);
ValueDecomposer decomposer;
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(context);

target.addLegalDialect<test::TestDialect>();

Expand Down
4 changes: 2 additions & 2 deletions mlir/test/lib/Transforms/TestExpandTanh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ struct TestExpandTanhPass
} // end anonymous namespace

void TestExpandTanhPass::runOnFunction() {
OwningRewritePatternList patterns;
populateExpandTanhPattern(patterns, &getContext());
OwningRewritePatternList patterns(&getContext());
populateExpandTanhPattern(patterns);
(void)applyPatternsAndFoldGreedily(getOperation(), std::move(patterns));
}

Expand Down
4 changes: 2 additions & 2 deletions mlir/test/lib/Transforms/TestGpuRewrite.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ struct TestGpuRewritePass
registry.insert<StandardOpsDialect, memref::MemRefDialect>();
}
void runOnOperation() override {
OwningRewritePatternList patterns;
populateGpuRewritePatterns(&getContext(), patterns);
OwningRewritePatternList patterns(&getContext());
populateGpuRewritePatterns(patterns);
(void)applyPatternsAndFoldGreedily(getOperation(), std::move(patterns));
}
};
Expand Down
2 changes: 1 addition & 1 deletion mlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ struct TestLinalgFusionTransforms
void runOnFunction() override {
MLIRContext *context = &this->getContext();
FuncOp funcOp = this->getFunction();
OwningRewritePatternList fusionPatterns;
OwningRewritePatternList fusionPatterns(context);
Aliases alias;
LinalgDependenceGraph dependenceGraph =
LinalgDependenceGraph::buildDependenceGraph(alias, funcOp);
Expand Down
50 changes: 28 additions & 22 deletions mlir/test/lib/Transforms/TestLinalgTransforms.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ struct TestLinalgTransforms

static void applyPatterns(FuncOp funcOp) {
MLIRContext *ctx = funcOp.getContext();
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(ctx);

//===--------------------------------------------------------------------===//
// Linalg tiling patterns.
Expand Down Expand Up @@ -237,21 +237,26 @@ static void fillL1TilingAndMatmulToVectorPatterns(
FuncOp funcOp, StringRef startMarker,
SmallVectorImpl<OwningRewritePatternList> &patternsVector) {
MLIRContext *ctx = funcOp.getContext();
patternsVector.emplace_back(std::make_unique<LinalgTilingPattern<MatmulOp>>(
ctx,
LinalgTilingOptions().setTileSizes({8, 12, 16}).setInterchange({1, 0, 2}),
LinalgTransformationFilter(Identifier::get(startMarker, ctx),
Identifier::get("L1", ctx))));
patternsVector.emplace_back(
ctx, std::make_unique<LinalgTilingPattern<MatmulOp>>(
ctx,
LinalgTilingOptions()
.setTileSizes({8, 12, 16})
.setInterchange({1, 0, 2}),
LinalgTransformationFilter(Identifier::get(startMarker, ctx),
Identifier::get("L1", ctx))));

patternsVector.emplace_back(
ctx,
std::make_unique<LinalgPromotionPattern<MatmulOp>>(
ctx, LinalgPromotionOptions().setUseFullTileBuffersByDefault(true),
LinalgTransformationFilter(Identifier::get("L1", ctx),
Identifier::get("VEC", ctx))));

patternsVector.emplace_back(std::make_unique<LinalgVectorizationPattern>(
MatmulOp::getOperationName(), ctx, LinalgVectorizationOptions(),
LinalgTransformationFilter(Identifier::get("VEC", ctx))));
patternsVector.emplace_back(
ctx, std::make_unique<LinalgVectorizationPattern>(
MatmulOp::getOperationName(), ctx, LinalgVectorizationOptions(),
LinalgTransformationFilter(Identifier::get("VEC", ctx))));
patternsVector.back().insert<LinalgVectorizationPattern>(
LinalgTransformationFilter().addFilter(
[](Operation *op) { return success(isa<FillOp, CopyOp>(op)); }));
Expand Down Expand Up @@ -462,13 +467,14 @@ applyMatmulToVectorPatterns(FuncOp funcOp,
fillL1TilingAndMatmulToVectorPatterns(funcOp, Identifier::get("START", ctx),
stage1Patterns);
} else if (testMatmulToVectorPatterns2dTiling) {
stage1Patterns.emplace_back(std::make_unique<LinalgTilingPattern<MatmulOp>>(
ctx,
LinalgTilingOptions()
.setTileSizes({768, 264, 768})
.setInterchange({1, 2, 0}),
LinalgTransformationFilter(Identifier::get("START", ctx),
Identifier::get("L2", ctx))));
stage1Patterns.emplace_back(
ctx, std::make_unique<LinalgTilingPattern<MatmulOp>>(
ctx,
LinalgTilingOptions()
.setTileSizes({768, 264, 768})
.setInterchange({1, 2, 0}),
LinalgTransformationFilter(Identifier::get("START", ctx),
Identifier::get("L2", ctx))));
fillL1TilingAndMatmulToVectorPatterns(funcOp, Identifier::get("L2", ctx),
stage1Patterns);
}
Expand All @@ -481,14 +487,14 @@ applyMatmulToVectorPatterns(FuncOp funcOp,
}

static void applyVectorTransferForwardingPatterns(FuncOp funcOp) {
OwningRewritePatternList forwardPattern;
OwningRewritePatternList forwardPattern(funcOp.getContext());
forwardPattern.insert<LinalgCopyVTRForwardingPattern>(funcOp.getContext());
forwardPattern.insert<LinalgCopyVTWForwardingPattern>(funcOp.getContext());
(void)applyPatternsAndFoldGreedily(funcOp, std::move(forwardPattern));
}

static void applyLinalgToVectorPatterns(FuncOp funcOp) {
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(funcOp.getContext());
patterns.insert<LinalgVectorizationPattern>(
LinalgTransformationFilter()
.addOpFilter<ContractionOpInterface, FillOp, CopyOp, GenericOp>());
Expand All @@ -497,7 +503,7 @@ static void applyLinalgToVectorPatterns(FuncOp funcOp) {
}

static void applyAffineMinSCFCanonicalizationPatterns(FuncOp funcOp) {
OwningRewritePatternList foldPattern;
OwningRewritePatternList foldPattern(funcOp.getContext());
foldPattern.insert<AffineMinSCFCanonicalizationPattern>(funcOp.getContext());
FrozenRewritePatternList frozenPatterns(std::move(foldPattern));

Expand All @@ -517,7 +523,7 @@ static Value getNeutralOfLinalgOp(OpBuilder &b, OpOperand &op) {

static void applyTileAndPadPattern(FuncOp funcOp) {
MLIRContext *context = funcOp.getContext();
OwningRewritePatternList tilingPattern;
OwningRewritePatternList tilingPattern(context);
auto linalgTilingOptions =
linalg::LinalgTilingOptions()
.setTileSizes({2, 3, 4})
Expand All @@ -539,13 +545,13 @@ void TestLinalgTransforms::runOnFunction() {
std::unique_ptr<void, decltype(lambda)> cleanupGuard{(void *)1, lambda};

if (testPromotionOptions) {
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(&getContext());
fillPromotionCallBackPatterns(&getContext(), patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
return;
}
if (testTileAndDistributionOptions) {
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(&getContext());
fillTileAndDistributePatterns(&getContext(), patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
return;
Expand Down
4 changes: 2 additions & 2 deletions mlir/test/lib/Transforms/TestPolynomialApproximation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ struct TestMathPolynomialApproximationPass
} // end anonymous namespace

void TestMathPolynomialApproximationPass::runOnFunction() {
OwningRewritePatternList patterns;
populateMathPolynomialApproximationPatterns(patterns, &getContext());
OwningRewritePatternList patterns(&getContext());
populateMathPolynomialApproximationPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getOperation(), std::move(patterns));
}

Expand Down
10 changes: 5 additions & 5 deletions mlir/test/lib/Transforms/TestSparsification.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -101,25 +101,25 @@ struct TestSparsification
/// Runs the test on a function.
void runOnOperation() override {
auto *ctx = &getContext();
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(ctx);
// Translate strategy flags to strategy options.
linalg::SparsificationOptions options(parallelOption(), vectorOption(),
vectorLength, typeOption(ptrType),
typeOption(indType), fastOutput);
// Apply rewriting.
linalg::populateSparsificationPatterns(ctx, patterns, options);
vector::populateVectorToVectorCanonicalizationPatterns(patterns, ctx);
linalg::populateSparsificationPatterns(patterns, options);
vector::populateVectorToVectorCanonicalizationPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getOperation(), std::move(patterns));
// Lower sparse primitives to calls into runtime support library.
if (lower) {
OwningRewritePatternList conversionPatterns;
OwningRewritePatternList conversionPatterns(ctx);
ConversionTarget target(*ctx);
target.addIllegalOp<linalg::SparseTensorFromPointerOp,
linalg::SparseTensorToPointersMemRefOp,
linalg::SparseTensorToIndicesMemRefOp,
linalg::SparseTensorToValuesMemRefOp>();
target.addLegalOp<CallOp>();
linalg::populateSparsificationConversionPatterns(ctx, conversionPatterns);
linalg::populateSparsificationConversionPatterns(conversionPatterns);
if (failed(applyPartialConversion(getOperation(), target,
std::move(conversionPatterns))))
signalPassFailure();
Expand Down
46 changes: 23 additions & 23 deletions mlir/test/lib/Transforms/TestVectorTransforms.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,19 @@ struct TestVectorToVectorConversion
llvm::cl::init(false)};

void runOnFunction() override {
OwningRewritePatternList patterns;
auto *ctx = &getContext();
OwningRewritePatternList patterns(ctx);
if (unroll) {
patterns.insert<UnrollVectorPattern>(
ctx,
UnrollVectorOptions().setNativeShapeFn(getShape).setFilterConstraint(
filter));
}
populateVectorToVectorCanonicalizationPatterns(patterns, ctx);
populateVectorToVectorTransformationPatterns(patterns, ctx);
populateBubbleVectorBitCastOpPatterns(patterns, ctx);
populateCastAwayVectorLeadingOneDimPatterns(patterns, ctx);
populateSplitVectorTransferPatterns(patterns, ctx);
populateVectorToVectorCanonicalizationPatterns(patterns);
populateVectorToVectorTransformationPatterns(patterns);
populateBubbleVectorBitCastOpPatterns(patterns);
populateCastAwayVectorLeadingOneDimPatterns(patterns);
populateSplitVectorTransferPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
}

Expand All @@ -70,8 +70,8 @@ struct TestVectorToVectorConversion
struct TestVectorSlicesConversion
: public PassWrapper<TestVectorSlicesConversion, FunctionPass> {
void runOnFunction() override {
OwningRewritePatternList patterns;
populateVectorSlicesLoweringPatterns(patterns, &getContext());
OwningRewritePatternList patterns(&getContext());
populateVectorSlicesLoweringPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
}
};
Expand Down Expand Up @@ -101,7 +101,7 @@ struct TestVectorContractionConversion
llvm::cl::init(false)};

void runOnFunction() override {
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(&getContext());

// Test on one pattern in isolation.
if (lowerToOuterProduct) {
Expand Down Expand Up @@ -138,7 +138,7 @@ struct TestVectorContractionConversion
if (lowerToFlatTranspose)
transposeLowering = VectorTransposeLowering::Flat;
VectorTransformsOptions options{contractLowering, transposeLowering};
populateVectorContractLoweringPatterns(patterns, &getContext(), options);
populateVectorContractLoweringPatterns(patterns, options);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
}
};
Expand All @@ -149,7 +149,7 @@ struct TestVectorUnrollingPatterns
TestVectorUnrollingPatterns(const TestVectorUnrollingPatterns &pass) {}
void runOnFunction() override {
MLIRContext *ctx = &getContext();
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(ctx);
patterns.insert<UnrollVectorPattern>(
ctx, UnrollVectorOptions()
.setNativeShape(ArrayRef<int64_t>{2, 2})
Expand Down Expand Up @@ -185,8 +185,8 @@ struct TestVectorUnrollingPatterns
return success(isa<ContractionOp>(op));
}));
}
populateVectorToVectorCanonicalizationPatterns(patterns, ctx);
populateVectorToVectorTransformationPatterns(patterns, ctx);
populateVectorToVectorCanonicalizationPatterns(patterns);
populateVectorToVectorTransformationPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
}

Expand All @@ -210,7 +210,7 @@ struct TestVectorDistributePatterns

void runOnFunction() override {
MLIRContext *ctx = &getContext();
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(ctx);
FuncOp func = getFunction();
func.walk([&](AddFOp op) {
OpBuilder builder(op);
Expand Down Expand Up @@ -241,7 +241,7 @@ struct TestVectorDistributePatterns
}
});
patterns.insert<PointwiseExtractPattern>(ctx);
populateVectorToVectorTransformationPatterns(patterns, ctx);
populateVectorToVectorTransformationPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
}
};
Expand All @@ -260,7 +260,7 @@ struct TestVectorToLoopPatterns
llvm::cl::init(32)};
void runOnFunction() override {
MLIRContext *ctx = &getContext();
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(ctx);
FuncOp func = getFunction();
func.walk([&](AddFOp op) {
// Check that the operation type can be broken down into a loop.
Expand Down Expand Up @@ -301,7 +301,7 @@ struct TestVectorToLoopPatterns
return mlir::WalkResult::interrupt();
});
patterns.insert<PointwiseExtractPattern>(ctx);
populateVectorToVectorTransformationPatterns(patterns, ctx);
populateVectorToVectorTransformationPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
}
};
Expand All @@ -313,7 +313,7 @@ struct TestVectorTransferUnrollingPatterns
}
void runOnFunction() override {
MLIRContext *ctx = &getContext();
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(ctx);
patterns.insert<UnrollVectorPattern>(
ctx,
UnrollVectorOptions()
Expand All @@ -322,8 +322,8 @@ struct TestVectorTransferUnrollingPatterns
return success(
isa<vector::TransferReadOp, vector::TransferWriteOp>(op));
}));
populateVectorToVectorCanonicalizationPatterns(patterns, ctx);
populateVectorToVectorTransformationPatterns(patterns, ctx);
populateVectorToVectorCanonicalizationPatterns(patterns);
populateVectorToVectorTransformationPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
}
};
Expand All @@ -347,7 +347,7 @@ struct TestVectorTransferFullPartialSplitPatterns
llvm::cl::init(false)};
void runOnFunction() override {
MLIRContext *ctx = &getContext();
OwningRewritePatternList patterns;
OwningRewritePatternList patterns(ctx);
VectorTransformsOptions options;
if (useLinalgOps)
options.setVectorTransferSplit(VectorTransferSplit::LinalgCopy);
Expand All @@ -369,8 +369,8 @@ struct TestVectorTransferLoweringPatterns
registry.insert<memref::MemRefDialect>();
}
void runOnFunction() override {
OwningRewritePatternList patterns;
populateVectorTransferLoweringPatterns(patterns, &getContext());
OwningRewritePatternList patterns(&getContext());
populateVectorTransferLoweringPatterns(patterns);
(void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
}
};
Expand Down
2 changes: 1 addition & 1 deletion mlir/unittests/Rewrite/PatternBenefit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ TEST(PatternBenefitTest, BenefitOrder) {
bool *called;
};

OwningRewritePatternList patterns;
OwningRewritePatternList patterns(&context);

bool called1 = false;
bool called2 = false;
Expand Down