[llvm] a968ae6 - [TableGen] Refactor SequenceToOffsetTable class (#104986)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 23 11:14:54 PDT 2024
Author: Rahul Joshi
Date: 2024-08-23T11:14:50-07:00
New Revision: a968ae6873d4dba50dabaa321fe05d3ccc9f38c8
URL: https://github.com/llvm/llvm-project/commit/a968ae6873d4dba50dabaa321fe05d3ccc9f38c8
DIFF: https://github.com/llvm/llvm-project/commit/a968ae6873d4dba50dabaa321fe05d3ccc9f38c8.diff
LOG: [TableGen] Refactor SequenceToOffsetTable class (#104986)
- Replace use of std::isalnum/ispunct with StringExtras version to avoid
possibly locale dependent behavior.
- Remove `static` from printChar (do its deduplicated when linking).
- Use range based for loops and structured bindings.
- No need to use `llvm::` for code in llvm namespace.
Added:
Modified:
llvm/utils/TableGen/Basic/SequenceToOffsetTable.h
Removed:
################################################################################
diff --git a/llvm/utils/TableGen/Basic/SequenceToOffsetTable.h b/llvm/utils/TableGen/Basic/SequenceToOffsetTable.h
index 09100b39650d81..497e74afc18ec9 100644
--- a/llvm/utils/TableGen/Basic/SequenceToOffsetTable.h
+++ b/llvm/utils/TableGen/Basic/SequenceToOffsetTable.h
@@ -15,20 +15,20 @@
#ifndef LLVM_UTILS_TABLEGEN_BASIC_SEQUENCETOOFFSETTABLE_H
#define LLVM_UTILS_TABLEGEN_BASIC_SEQUENCETOOFFSETTABLE_H
+#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
-#include <cctype>
#include <functional>
#include <map>
namespace llvm {
-extern llvm::cl::opt<bool> EmitLongStrLiterals;
+extern cl::opt<bool> EmitLongStrLiterals;
-static inline void printChar(raw_ostream &OS, char C) {
+inline void printChar(raw_ostream &OS, char C) {
unsigned char UC(C);
- if (isalnum(UC) || ispunct(UC)) {
+ if (isAlnum(UC) || isPunct(UC)) {
OS << '\'';
if (C == '\\' || C == '\'')
OS << '\\';
@@ -126,7 +126,7 @@ class SequenceToOffsetTable {
/// initializer, where each element is a C string literal terminated by
/// `\0`. Falls back to emitting a comma-separated integer list if
/// `EmitLongStrLiterals` is false
- void emitStringLiteralDef(raw_ostream &OS, const llvm::Twine &Decl) const {
+ void emitStringLiteralDef(raw_ostream &OS, const Twine &Decl) const {
assert(Entries && "Call layout() before emitStringLiteralDef()");
if (!EmitLongStrLiterals) {
OS << Decl << " = {\n";
@@ -140,9 +140,9 @@ class SequenceToOffsetTable {
<< "#pragma GCC diagnostic ignored \"-Woverlength-strings\"\n"
<< "#endif\n"
<< Decl << " = {\n";
- for (auto I : Seqs) {
- OS << " /* " << I.second << " */ \"";
- OS.write_escaped(I.first);
+ for (const auto &[Seq, Offset] : Seqs) {
+ OS << " /* " << Offset << " */ \"";
+ OS.write_escaped(Seq);
OS << "\\0\"\n";
}
OS << "};\n"
@@ -156,13 +156,10 @@ class SequenceToOffsetTable {
void emit(raw_ostream &OS, void (*Print)(raw_ostream &, ElemT),
const char *Term = "0") const {
assert((empty() || Entries) && "Call layout() before emit()");
- for (typename SeqMap::const_iterator I = Seqs.begin(), E = Seqs.end();
- I != E; ++I) {
- OS << " /* " << I->second << " */ ";
- for (typename SeqT::const_iterator SI = I->first.begin(),
- SE = I->first.end();
- SI != SE; ++SI) {
- Print(OS, *SI);
+ for (const auto &[Seq, Offset] : Seqs) {
+ OS << " /* " << Offset << " */ ";
+ for (const ElemT &Element : Seq) {
+ Print(OS, Element);
OS << ", ";
}
OS << Term << ",\n";
More information about the llvm-commits
mailing list