[Mlir-commits] [mlir] [mlir] Add a utility method to move operation dependencies. (PR #129975)
Jakub Kuderski
llvmlistbot at llvm.org
Wed Mar 5 19:34:39 PST 2025
================
@@ -0,0 +1,66 @@
+//===- TestTransformsOps.cpp - Test Transforms ----------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines transform dialect operations for testing MLIR
+// transformations
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/Dialect/Transform/IR/TransformAttrs.h"
+#include "mlir/Dialect/Transform/IR/TransformDialect.h"
+#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"
+#include "mlir/Transforms/RegionUtils.h"
+
+#define GET_OP_CLASSES
+#include "TestTransformsOps.h.inc"
+
+using namespace mlir;
+using namespace mlir::transform;
+
+#define GET_OP_CLASSES
+#include "TestTransformsOps.cpp.inc"
+
+DiagnosedSilenceableFailure
+transform::TestMoveOperandDeps::apply(TransformRewriter &rewriter,
+ TransformResults &TransformResults,
+ TransformState &state) {
+ Operation *op = *state.getPayloadOps(getOp()).begin();
+ Operation *moveBefore = *state.getPayloadOps(getInsertionPoint()).begin();
+ if (failed(moveOperationDependencies(rewriter, op, moveBefore))) {
+ auto listener = cast<ErrorCheckingTrackingListener>(rewriter.getListener());
+ std::string errorMsg = listener->checkAndResetError().getMessage();
+ return emitSilenceableFailure(op, errorMsg);
+ }
+ return DiagnosedSilenceableFailure::success();
+}
+
+namespace {
+
+class TestTransformsDialectExtension
+ : public transform::TransformDialectExtension<
+ TestTransformsDialectExtension> {
+public:
+ MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestTransformsDialectExtension)
+
+ using Base::Base;
+
+ void init() {
+ registerTransformOps<
+#define GET_OP_LIST
+#include "TestTransformsOps.cpp.inc"
+ >();
+ }
+};
+} // namespace
+
+namespace test {
+void registerTestTransformsTransformDialectExtension(
+ DialectRegistry ®istry) {
+ registry.addExtensions<TestTransformsDialectExtension>();
+}
+} // namespace test
----------------
kuhar wrote:
nit: missing newline
https://github.com/llvm/llvm-project/pull/129975
More information about the Mlir-commits
mailing list