[Mlir-commits] [llvm] [mlir] [NFC][TableGen] Use `Twine` for Name argument in CodeGenHelpers (PR #163581)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Wed Oct 15 11:23:07 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
@llvm/pr-subscribers-mlir-core
Author: Rahul Joshi (jurahul)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/163581.diff
4 Files Affected:
- (modified) llvm/include/llvm/TableGen/CodeGenHelpers.h (+10-9)
- (modified) llvm/utils/TableGen/Basic/DirectiveEmitter.cpp (+5-9)
- (modified) mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp (+2-5)
- (modified) mlir/tools/mlir-tblgen/OpInterfacesGen.cpp (+2-2)
``````````diff
diff --git a/llvm/include/llvm/TableGen/CodeGenHelpers.h b/llvm/include/llvm/TableGen/CodeGenHelpers.h
index e22c6d4f6d390..d6fe36c8da4d3 100644
--- a/llvm/include/llvm/TableGen/CodeGenHelpers.h
+++ b/llvm/include/llvm/TableGen/CodeGenHelpers.h
@@ -13,9 +13,8 @@
#ifndef LLVM_TABLEGEN_CODEGENHELPERS_H
#define LLVM_TABLEGEN_CODEGENHELPERS_H
-#include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/ADT/Twine.h"
#include "llvm/Support/raw_ostream.h"
#include <string>
@@ -23,7 +22,7 @@ namespace llvm {
// Simple RAII helper for emitting ifdef-undef-endif scope.
class IfDefEmitter {
public:
- IfDefEmitter(raw_ostream &OS, StringRef Name) : Name(Name.str()), OS(OS) {
+ IfDefEmitter(raw_ostream &OS, const Twine &Name) : Name(Name.str()), OS(OS) {
OS << "#ifdef " << Name << "\n"
<< "#undef " << Name << "\n\n";
}
@@ -37,7 +36,7 @@ class IfDefEmitter {
// Simple RAII helper for emitting header include guard (ifndef-define-endif).
class IncludeGuardEmitter {
public:
- IncludeGuardEmitter(raw_ostream &OS, StringRef Name)
+ IncludeGuardEmitter(raw_ostream &OS, const Twine &Name)
: Name(Name.str()), OS(OS) {
OS << "#ifndef " << Name << "\n"
<< "#define " << Name << "\n\n";
@@ -54,8 +53,8 @@ class IncludeGuardEmitter {
// namespace scope.
class NamespaceEmitter {
public:
- NamespaceEmitter(raw_ostream &OS, StringRef NameUntrimmed)
- : Name(trim(NameUntrimmed).str()), OS(OS) {
+ NamespaceEmitter(raw_ostream &OS, const Twine &NameUntrimmed)
+ : Name(trim(NameUntrimmed)), OS(OS) {
if (!Name.empty())
OS << "namespace " << Name << " {\n";
}
@@ -77,9 +76,11 @@ class NamespaceEmitter {
// }
//
// and cannot use "namespace ::mlir::toy".
- static StringRef trim(StringRef Name) {
- Name.consume_front("::");
- return Name;
+ static std::string trim(const Twine &NameUntrimmed) {
+ std::string Name = NameUntrimmed.str();
+ StringRef StrRef = Name;
+ StrRef.consume_front("::");
+ return StrRef.str();
}
std::string Name;
raw_ostream &OS;
diff --git a/llvm/utils/TableGen/Basic/DirectiveEmitter.cpp b/llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
index 3c6ff1132230b..bc9d281f8cbb9 100644
--- a/llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
+++ b/llvm/utils/TableGen/Basic/DirectiveEmitter.cpp
@@ -266,7 +266,7 @@ static void emitDirectivesDecl(const RecordKeeper &Records, raw_ostream &OS) {
return;
StringRef Lang = DirLang.getName();
- IncludeGuardEmitter IncGuard(OS, (Twine("LLVM_") + Lang + "_INC").str());
+ IncludeGuardEmitter IncGuard(OS, Twine("LLVM_") + Lang + "_INC");
OS << "#include \"llvm/ADT/ArrayRef.h\"\n";
@@ -941,10 +941,8 @@ static void generateClauseSet(ArrayRef<const Record *> VerClauses,
static void generateDirectiveClauseSets(const DirectiveLanguage &DirLang,
Frontend FE, raw_ostream &OS) {
- std::string IfDefName{"GEN_"};
- IfDefName += getFESpelling(FE).upper();
- IfDefName += "_DIRECTIVE_CLAUSE_SETS";
- IfDefEmitter Scope(OS, IfDefName);
+ IfDefEmitter Scope(OS, "GEN_" + getFESpelling(FE).upper() +
+ "_DIRECTIVE_CLAUSE_SETS");
StringRef Namespace =
getFESpelling(FE == Frontend::Flang ? Frontend::LLVM : FE);
@@ -985,10 +983,8 @@ static void generateDirectiveClauseSets(const DirectiveLanguage &DirLang,
// allowances (allowed, allowed once, allowed exclusive and required).
static void generateDirectiveClauseMap(const DirectiveLanguage &DirLang,
Frontend FE, raw_ostream &OS) {
- std::string IfDefName{"GEN_"};
- IfDefName += getFESpelling(FE).upper();
- IfDefName += "_DIRECTIVE_CLAUSE_MAP";
- IfDefEmitter Scope(OS, IfDefName);
+ IfDefEmitter Scope(OS, "GEN_" + getFESpelling(FE).upper() +
+ "_DIRECTIVE_CLAUSE_MAP");
OS << "{\n";
diff --git a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
index daae3c79ffd43..ff610f46c5aa0 100644
--- a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
+++ b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
@@ -4938,10 +4938,7 @@ static void emitOpDefShard(const RecordKeeper &records,
ArrayRef<const Record *> defs,
const Dialect &dialect, unsigned shardIndex,
unsigned shardCount, raw_ostream &os) {
- std::string shardGuard = "GET_OP_DEFS_";
- std::string indexStr = std::to_string(shardIndex);
- shardGuard += indexStr;
- IfDefEmitter scope(os, shardGuard);
+ IfDefEmitter scope(os, Twine("GET_OP_DEFS_") + Twine(shardIndex));
// Emit the op registration hook in the first shard.
const char *const opRegistrationHook =
@@ -4968,7 +4965,7 @@ static void emitOpDefShard(const RecordKeeper &records,
os << "}\n";
// Generate the per-shard op definitions.
- emitOpClassDefs(records, defs, os, indexStr);
+ emitOpClassDefs(records, defs, os, std::to_string(shardIndex));
}
/// Emit op definitions for all op records.
diff --git a/mlir/tools/mlir-tblgen/OpInterfacesGen.cpp b/mlir/tools/mlir-tblgen/OpInterfacesGen.cpp
index ab8d534a99f19..f74cc05790042 100644
--- a/mlir/tools/mlir-tblgen/OpInterfacesGen.cpp
+++ b/mlir/tools/mlir-tblgen/OpInterfacesGen.cpp
@@ -442,8 +442,8 @@ void InterfaceGenerator::emitModelMethodsDef(const Interface &interface) {
}
void InterfaceGenerator::emitInterfaceTraitDecl(const Interface &interface) {
- auto cppNamespace = (interface.getCppNamespace() + "::detail").str();
- llvm::NamespaceEmitter ns(os, cppNamespace);
+ llvm::NamespaceEmitter ns(os,
+ Twine(interface.getCppNamespace()) + "::detail");
StringRef interfaceName = interface.getName();
auto interfaceTraitsName = (interfaceName + "InterfaceTraits").str();
``````````
</details>
https://github.com/llvm/llvm-project/pull/163581
More information about the Mlir-commits
mailing list