[llvm] [GlobalISel] Prefix MatchTable Lines with their Index (PR #125845)
Pierre van Houtryve via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 6 04:10:26 PST 2025
================
@@ -286,11 +286,28 @@ MatchTableRecord MatchTable::JumpTarget(unsigned LabelID) {
void MatchTable::emitUse(raw_ostream &OS) const { OS << "MatchTable" << ID; }
void MatchTable::emitDeclaration(raw_ostream &OS) const {
- unsigned Indentation = 4;
+ static constexpr unsigned BaseIndent = 4;
+ unsigned Indentation = 0;
OS << " constexpr static uint8_t MatchTable" << ID << "[] = {";
LineBreak.emit(OS, true, *this);
- OS << std::string(Indentation, ' ');
+ // We want to display the table index of each line in a consistent
+ // manner. It has to appear as a column on the left side of the table.
+ // To determine how wide the column needs to be, check how many characters
+ // we need to fit the largest possible index in the current table.
+ const unsigned NumColsForIdx = llvm::to_string(CurrentSize).size();
+
+ unsigned CurIndex = 0;
+ const auto BeginLine = [&]() {
+ OS.indent(BaseIndent);
+ std::string IdxStr = llvm::to_string(CurIndex);
----------------
Pierre-vh wrote:
How? I need its size to calculate the padding to insert
https://github.com/llvm/llvm-project/pull/125845
More information about the llvm-commits
mailing list