[Mlir-commits] [mlir] [MLIR][IRDL] Instantiate "." in IRDL-defined names as nested namespaces (PR #207035)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Thu Jul 2 09:43:18 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions cpp -- mlir/lib/Dialect/IRDL/IR/IRDL.cpp mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/mlir/lib/Dialect/IRDL/IR/IRDL.cpp b/mlir/lib/Dialect/IRDL/IR/IRDL.cpp
index b1005b01a..170acb97d 100644
--- a/mlir/lib/Dialect/IRDL/IR/IRDL.cpp
+++ b/mlir/lib/Dialect/IRDL/IR/IRDL.cpp
@@ -88,18 +88,16 @@ static llvm::LogicalResult isValidName(llvm::StringRef in, mlir::Operation *loc,
if (elem == '.') {
if (prev == '.')
return loc->emitError("empty namespace not allowed");
- }
- else
- {
- if (!isalnum(elem))
- return loc->emitError("name of ")
- << label
- << " must contain only lowercase letters, digits and "
- "underscores";
-
- if (llvm::isUpper(elem))
- return loc->emitError("name of ")
- << label << " should not contain uppercase letters";
+ } else {
+ if (!isalnum(elem))
+ return loc->emitError("name of ")
+ << label
+ << " must contain only lowercase letters, digits and "
+ "underscores";
+
+ if (llvm::isUpper(elem))
+ return loc->emitError("name of ")
+ << label << " should not contain uppercase letters";
}
}
diff --git a/mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp b/mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp
index e8773937f..ed52dd42c 100644
--- a/mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp
+++ b/mlir/lib/Target/IRDLToCpp/IRDLToCpp.cpp
@@ -78,14 +78,16 @@ static std::string typeToCppName(irdl::TypeOp type) {
static std::string opToCppName(irdl::OperationOp op) {
const auto opName = op.getSymName();
const auto periodIndex = opName.find_last_of(".");
- const auto nameSubstr = periodIndex == std::string::npos ? opName : opName.substr(periodIndex + 1);
- return llvm::formatv("{0}Op",
- convertToCamelFromSnakeCase(nameSubstr, true));
+ const auto nameSubstr = periodIndex == std::string::npos
+ ? opName
+ : opName.substr(periodIndex + 1);
+ return llvm::formatv("{0}Op", convertToCamelFromSnakeCase(nameSubstr, true));
}
// Generates the C++ class name for an OperationOp, scoped to the namespace
static std::string opToScopedCppName(irdl::OperationOp op) {
- auto names = llvm::SmallVector<std::string>(llvm::split(op.getSymName(), "."));
+ auto names =
+ llvm::SmallVector<std::string>(llvm::split(op.getSymName(), "."));
names.pop_back();
names.push_back(opToCppName(op));
return llvm::join(names, "::");
@@ -160,9 +162,15 @@ static void fillDict(irdl::detail::dictionary &dict, const OpStrings &strings) {
dict["OP_RESULT_INITIALIZER_LIST"] =
resultCount ? joinNameList(strings.opResultNames) : "{\"\"}";
dict["OP_REGION_COUNT"] = std::to_string(regionCount);
- dict["NAMESPACE_OPEN"] = (dict["NAMESPACE_OPEN"] + llvm::join(llvm::map_range(strings.opNameSpaces, [](llvm::StringRef ref) -> std::string {
- return llvm::formatv("namespace {0} {{", ref);
- }), "\n")).str();
+ dict["NAMESPACE_OPEN"] =
+ (dict["NAMESPACE_OPEN"] +
+ llvm::join(llvm::map_range(strings.opNameSpaces,
+ [](llvm::StringRef ref) -> std::string {
+ return llvm::formatv("namespace {0} {{",
+ ref);
+ }),
+ "\n"))
+ .str();
dict["NAMESPACE_PATH"] =
(dict["NAMESPACE_PATH"] +
llvm::join(llvm::map_range(strings.opNameSpaces,
@@ -171,9 +179,15 @@ static void fillDict(irdl::detail::dictionary &dict, const OpStrings &strings) {
}),
""))
.str();
- dict["NAMESPACE_CLOSE"] = (llvm::join(llvm::map_range(llvm::reverse(strings.opNameSpaces), [](llvm::StringRef ref) -> std::string {
- return llvm::formatv("} // namespace {0}\n", ref);
- }), "") + dict["NAMESPACE_CLOSE"]).str();
+ dict["NAMESPACE_CLOSE"] =
+ (llvm::join(llvm::map_range(llvm::reverse(strings.opNameSpaces),
+ [](llvm::StringRef ref) -> std::string {
+ return llvm::formatv("} // namespace {0}\n",
+ ref);
+ }),
+ "") +
+ dict["NAMESPACE_CLOSE"])
+ .str();
}
/// Fills a dictionary with values from DialectStrings
@@ -314,9 +328,9 @@ static SmallVector<std::string> generateTraits(irdl::OperationOp op,
return cppTraitNames;
}
-static LogicalResult generateOperationInclude(irdl::OperationOp op,
- raw_ostream &output,
- const irdl::detail::dictionary &dict) {
+static LogicalResult
+generateOperationInclude(irdl::OperationOp op, raw_ostream &output,
+ const irdl::detail::dictionary &dict) {
static const auto perOpDeclTemplate = irdl::detail::Template(
#include "Templates/PerOperationDecl.txt"
);
@@ -329,7 +343,7 @@ static LogicalResult generateOperationInclude(irdl::OperationOp op,
opDict["OP_TEMPLATE_ARGS"] = opStrings.opCppName;
else
opDict["OP_TEMPLATE_ARGS"] = llvm::formatv("{0}, {1}", opStrings.opCppName,
- llvm::join(traitNames, ", "));
+ llvm::join(traitNames, ", "));
generateOpGetterDeclarations(opDict, opStrings);
generateOpBuilderDeclarations(opDict, opStrings);
``````````
</details>
https://github.com/llvm/llvm-project/pull/207035
More information about the Mlir-commits
mailing list