[Mlir-commits] [mlir] [mlir][ArmSME] Remove func patterns from vector lowering (PR #121640)
Matthias Springer
llvmlistbot at llvm.org
Sat Jan 4 03:39:30 PST 2025
https://github.com/matthias-springer created https://github.com/llvm/llvm-project/pull/121640
Remove `func.call` and `func.return` patterns from `populateArmSVELegalizeForLLVMExportPatterns`. This function is called from `ConvertVectorToLLVMPass::runOnOperation`. That pass should lower `vector` dialect ops, not `func` dialect ops. These patterns also seem to be unnecessary, as no test cases are failing without them.
>From b72b4e66a0fb9efab16bdf6ddc7bb315346ad425 Mon Sep 17 00:00:00 2001
From: Matthias Springer <mspringer at nvidia.com>
Date: Sat, 4 Jan 2025 12:35:02 +0100
Subject: [PATCH] [mlir][ArmSME] Remove func patterns from vector lowering
Remove `func.call` and `func.return` patterns from `populateArmSVELegalizeForLLVMExportPatterns`. This function is called from `ConvertVectorToLLVMPass::runOnOperation`. That pass should lower `vector` dialect ops, not `func` dialect ops. These patterns also seem to be unnecessary, as no test cases are failing without them.
---
.../Transforms/LegalizeForLLVMExport.cpp | 20 -------------------
1 file changed, 20 deletions(-)
diff --git a/mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp b/mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp
index 845a32c4d97b5e..2bdb640699d036 100644
--- a/mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp
+++ b/mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp
@@ -20,22 +20,6 @@
using namespace mlir;
using namespace mlir::arm_sve;
-template <typename OpTy>
-class ForwardOperands : public OpConversionPattern<OpTy> {
- using OpConversionPattern<OpTy>::OpConversionPattern;
-
- LogicalResult
- matchAndRewrite(OpTy op, typename OpTy::Adaptor adaptor,
- ConversionPatternRewriter &rewriter) const final {
- if (adaptor.getOperands().getTypes() == op->getOperands().getTypes())
- return rewriter.notifyMatchFailure(op, "operand types already match");
-
- rewriter.modifyOpInPlace(op,
- [&]() { op->setOperands(adaptor.getOperands()); });
- return success();
- }
-};
-
using SdotOpLowering = OneToOneConvertToLLVMPattern<SdotOp, SdotIntrOp>;
using SmmlaOpLowering = OneToOneConvertToLLVMPattern<SmmlaOp, SmmlaIntrOp>;
using UdotOpLowering = OneToOneConvertToLLVMPattern<UdotOp, UdotIntrOp>;
@@ -204,10 +188,6 @@ void mlir::populateArmSVELegalizeForLLVMExportPatterns(
// Populate conversion patterns
// clang-format off
- patterns.add<ForwardOperands<func::CallOp>,
- ForwardOperands<func::CallIndirectOp>,
- ForwardOperands<func::ReturnOp>>(converter,
- &converter.getContext());
patterns.add<SdotOpLowering,
SmmlaOpLowering,
UdotOpLowering,
More information about the Mlir-commits
mailing list