[Mlir-commits] [mlir] [mlir][python] fix value-builder generation for snake_case ops (PR #135302)
Maksim Levental
llvmlistbot at llvm.org
Thu Apr 10 19:55:31 PDT 2025
https://github.com/makslevental updated https://github.com/llvm/llvm-project/pull/135302
>From adeb3147936364e9ca3dbc0130f5905dffcea0bf Mon Sep 17 00:00:00 2001
From: Maksim Levental <maksim.levental at gmail.com>
Date: Thu, 10 Apr 2025 22:46:39 -0400
Subject: [PATCH] [mlir][python] fix value-builder generation for snake_case
ops
---
mlir/test/mlir-tblgen/op-python-bindings.td | 3 +++
mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp | 7 +++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/mlir/test/mlir-tblgen/op-python-bindings.td b/mlir/test/mlir-tblgen/op-python-bindings.td
index 72963cac64d54..280c745262428 100644
--- a/mlir/test/mlir-tblgen/op-python-bindings.td
+++ b/mlir/test/mlir-tblgen/op-python-bindings.td
@@ -654,3 +654,6 @@ def WithSuccessorsOp : TestOp<"with_successors"> {
// CHECK: def with_successors(successor, successors, *, loc=None, ip=None)
// CHECK: return WithSuccessorsOp(successor=successor, successors=successors, loc=loc, ip=ip)
+
+def already_snake_case : TestOp<"already_snake_case"> {}
+// CHECK: def already_snake_case_(*, loc=None, ip=None)
diff --git a/mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp b/mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
index 604d2376052a8..7da0cdd313823 100644
--- a/mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
+++ b/mlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
@@ -998,8 +998,11 @@ static void emitValueBuilder(const Operator &op,
auto lhs = *llvm::split(arg, "=").begin();
return (lhs + "=" + llvm::convertToSnakeFromCamelCase(lhs)).str();
});
- std::string nameWithoutDialect = sanitizeName(
- op.getOperationName().substr(op.getOperationName().find('.') + 1));
+ std::string opClassName =
+ op.getOperationName().substr(op.getOperationName().find('.') + 1);
+ std::string nameWithoutDialect = sanitizeName(opClassName);
+ if (nameWithoutDialect == opClassName)
+ nameWithoutDialect += "_";
std::string params = llvm::join(valueBuilderParams, ", ");
std::string args = llvm::join(opBuilderArgs, ", ");
const char *type =
More information about the Mlir-commits
mailing list