[Mlir-commits] [mlir] 15511c2 - [mlir][ods] Generate remover methods with camelcase
Jeff Niu
llvmlistbot at llvm.org
Thu Dec 8 11:32:50 PST 2022
Author: Jeff Niu
Date: 2022-12-08T11:32:35-08:00
New Revision: 15511c2e6cc4b0dcba0592bfd3a96b9b6be5db4a
URL: https://github.com/llvm/llvm-project/commit/15511c2e6cc4b0dcba0592bfd3a96b9b6be5db4a
DIFF: https://github.com/llvm/llvm-project/commit/15511c2e6cc4b0dcba0592bfd3a96b9b6be5db4a.diff
LOG: [mlir][ods] Generate remover methods with camelcase
The remove*Attr methods were not being generated with the correct
camelcase method.
Depends on D139470
Reviewed By: rriddle
Differential Revision: https://reviews.llvm.org/D139471
Added:
Modified:
mlir/include/mlir/TableGen/Operator.h
mlir/lib/TableGen/Operator.cpp
mlir/test/mlir-tblgen/op-decl-and-defs.td
mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Removed:
################################################################################
diff --git a/mlir/include/mlir/TableGen/Operator.h b/mlir/include/mlir/TableGen/Operator.h
index ad906e45a25ba..74df33eb1ed78 100644
--- a/mlir/include/mlir/TableGen/Operator.h
+++ b/mlir/include/mlir/TableGen/Operator.h
@@ -308,6 +308,9 @@ class Operator {
/// Returns the setter name for the accessor of `name`.
std::string getSetterName(StringRef name) const;
+ /// Returns the remove name for the accessor of `name`.
+ std::string getRemoverName(StringRef name) const;
+
private:
/// Populates the vectors containing operands, attributes, results and traits.
void populateOpStructure();
diff --git a/mlir/lib/TableGen/Operator.cpp b/mlir/lib/TableGen/Operator.cpp
index 8caa4647377c2..ab4a944da5d2d 100644
--- a/mlir/lib/TableGen/Operator.cpp
+++ b/mlir/lib/TableGen/Operator.cpp
@@ -737,3 +737,7 @@ std::string Operator::getGetterName(StringRef name) const {
std::string Operator::getSetterName(StringRef name) const {
return "set" + convertToCamelFromSnakeCase(name, /*capitalizeFirst=*/true);
}
+
+std::string Operator::getRemoverName(StringRef name) const {
+ return "remove" + convertToCamelFromSnakeCase(name, /*capitalizeFirst=*/true);
+}
diff --git a/mlir/test/mlir-tblgen/op-decl-and-defs.td b/mlir/test/mlir-tblgen/op-decl-and-defs.td
index 98726d750f5d7..80e29c644fe22 100644
--- a/mlir/test/mlir-tblgen/op-decl-and-defs.td
+++ b/mlir/test/mlir-tblgen/op-decl-and-defs.td
@@ -24,7 +24,7 @@ def NS_AOp : NS_Op<"a_op", [IsolatedFromAbove, IsolatedFromAbove]> {
Variadic<F32>:$b,
I32Attr:$attr1,
- OptionalAttr<F32Attr>:$attr2
+ OptionalAttr<F32Attr>:$some_attr2
);
let results = (outs
@@ -60,8 +60,8 @@ def NS_AOp : NS_Op<"a_op", [IsolatedFromAbove, IsolatedFromAbove]> {
// CHECK: ::mlir::ValueRange getB();
// CHECK: ::mlir::IntegerAttr getAttr1Attr();
// CHECK: uint32_t getAttr1();
-// CHECK: ::mlir::FloatAttr getAttr2Attr();
-// CHECK: ::llvm::Optional< ::llvm::APFloat > getAttr2();
+// CHECK: ::mlir::FloatAttr getSomeAttr2Attr();
+// CHECK: ::llvm::Optional< ::llvm::APFloat > getSomeAttr2();
// CHECK: ::mlir::Region &getSomeRegion();
// CHECK: ::mlir::RegionRange getSomeRegions();
// CHECK: private:
@@ -87,15 +87,15 @@ def NS_AOp : NS_Op<"a_op", [IsolatedFromAbove, IsolatedFromAbove]> {
// CHECK: ::mlir::MutableArrayRef<::mlir::Region> getSomeRegions();
// CHECK: ::mlir::IntegerAttr getAttr1Attr()
// CHECK: uint32_t getAttr1();
-// CHECK: ::mlir::FloatAttr getAttr2Attr()
-// CHECK: ::llvm::Optional< ::llvm::APFloat > getAttr2();
-// CHECK: ::mlir::Attribute removeAttr2Attr();
+// CHECK: ::mlir::FloatAttr getSomeAttr2Attr()
+// CHECK: ::llvm::Optional< ::llvm::APFloat > getSomeAttr2();
+// CHECK: ::mlir::Attribute removeSomeAttr2Attr();
// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, Value val);
// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, int integer = 0);
-// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type r, ::mlir::TypeRange s, ::mlir::Value a, ::mlir::ValueRange b, ::mlir::IntegerAttr attr1, /*optional*/::mlir::FloatAttr attr2, unsigned someRegionsCount)
-// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value a, ::mlir::ValueRange b, ::mlir::IntegerAttr attr1, /*optional*/::mlir::FloatAttr attr2, unsigned someRegionsCount);
-// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type r, ::mlir::TypeRange s, ::mlir::Value a, ::mlir::ValueRange b, uint32_t attr1, /*optional*/::mlir::FloatAttr attr2, unsigned someRegionsCount)
-// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value a, ::mlir::ValueRange b, uint32_t attr1, /*optional*/::mlir::FloatAttr attr2, unsigned someRegionsCount);
+// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type r, ::mlir::TypeRange s, ::mlir::Value a, ::mlir::ValueRange b, ::mlir::IntegerAttr attr1, /*optional*/::mlir::FloatAttr some_attr2, unsigned someRegionsCount)
+// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value a, ::mlir::ValueRange b, ::mlir::IntegerAttr attr1, /*optional*/::mlir::FloatAttr some_attr2, unsigned someRegionsCount);
+// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::Type r, ::mlir::TypeRange s, ::mlir::Value a, ::mlir::ValueRange b, uint32_t attr1, /*optional*/::mlir::FloatAttr some_attr2, unsigned someRegionsCount)
+// CHECK: static void build(::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::Value a, ::mlir::ValueRange b, uint32_t attr1, /*optional*/::mlir::FloatAttr some_attr2, unsigned someRegionsCount);
// CHECK: static void build(::mlir::OpBuilder &, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::ValueRange operands, ::llvm::ArrayRef<::mlir::NamedAttribute> attributes, unsigned numRegions)
// CHECK: static ::mlir::ParseResult parse(::mlir::OpAsmParser &parser, ::mlir::OperationState &result);
// CHECK: void print(::mlir::OpAsmPrinter &p);
diff --git a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
index 868b2f0591a7f..8abd42c46aada 100644
--- a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+++ b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
@@ -1174,9 +1174,8 @@ void OpEmitter::genOptionalAttrRemovers() {
// use the string interface. Enables better compile time verification.
auto emitRemoveAttr = [&](StringRef name) {
auto upperInitial = name.take_front().upper();
- auto suffix = name.drop_front();
auto *method = opClass.addMethod("::mlir::Attribute",
- "remove" + upperInitial + suffix + "Attr");
+ op.getRemoverName(name) + "Attr");
if (!method)
return;
method->body() << formatv(" return (*this)->removeAttr({0}AttrName());",
More information about the Mlir-commits
mailing list