diff options
author | Felipe de Azevedo Piovezan <fpiovezan@apple.com> | 2024-01-05 11:01:19 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-05 11:01:19 -0300 |
commit | 2b88bd110cbe61e1e3ef764d0362a75dc7c9cd50 (patch) | |
tree | fb3809e5742badb3e2785aefe7583228c05fb2c0 | |
parent | f07aba4bc1fbd8301b09e2114ebc4149d2439cac (diff) |
[AsmPrinter][Dwarf5][nfc] Remove template from AccelTable class (#76296)
This template is no longer used.
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp | 62 |
1 files changed, 25 insertions, 37 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp b/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp index 30ea7eef3a12..bf580269eca6 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp @@ -182,11 +182,7 @@ public: /// Class responsible for emitting a DWARF v5 Accelerator Table. The only /// public function is emit(), which performs the actual emission. /// -/// The class is templated in its data type. This allows us to emit both dyamic -/// and static data entries. A callback abstract the logic to provide a CU -/// index for a given entry, which is different per data type, but identical -/// for every entry in the same table. -template <typename DataT> +/// A callback abstracts the logic to provide a CU index for a given entry. class Dwarf5AccelTableWriter : public AccelTableWriter { struct Header { uint16_t Version = 5; @@ -216,7 +212,7 @@ class Dwarf5AccelTableWriter : public AccelTableWriter { ArrayRef<std::variant<MCSymbol *, uint64_t>> CompUnits; ArrayRef<std::variant<MCSymbol *, uint64_t>> TypeUnits; llvm::function_ref<std::optional<DWARF5AccelTable::UnitIndexAndEncoding>( - const DataT &)> + const DWARF5AccelTableData &)> getIndexForEntry; MCSymbol *ContributionEnd = nullptr; MCSymbol *AbbrevStart = Asm->createTempSymbol("names_abbrev_start"); @@ -232,7 +228,7 @@ class Dwarf5AccelTableWriter : public AccelTableWriter { void emitBuckets() const; void emitStringOffsets() const; void emitAbbrevs() const; - void emitEntry(const DataT &Entry) const; + void emitEntry(const DWARF5AccelTableData &Entry) const; void emitData() const; public: @@ -240,8 +236,8 @@ public: AsmPrinter *Asm, const AccelTableBase &Contents, ArrayRef<std::variant<MCSymbol *, uint64_t>> CompUnits, ArrayRef<std::variant<MCSymbol *, uint64_t>> TypeUnits, - llvm::function_ref< - std::optional<DWARF5AccelTable::UnitIndexAndEncoding>(const DataT &)> + llvm::function_ref<std::optional<DWARF5AccelTable::UnitIndexAndEncoding>( + const DWARF5AccelTableData &)> getIndexForEntry, bool IsSplitDwarf); @@ -370,8 +366,7 @@ DWARF5AccelTableData::DWARF5AccelTableData(const DIE &Die, const bool IsTU) : OffsetVal(&Die), DieTag(Die.getTag()), UnitID(UnitID), IsTU(IsTU) {} -template <typename DataT> -void Dwarf5AccelTableWriter<DataT>::Header::emit(Dwarf5AccelTableWriter &Ctx) { +void Dwarf5AccelTableWriter::Header::emit(Dwarf5AccelTableWriter &Ctx) { assert(CompUnitCount > 0 && "Index must have at least one CU."); AsmPrinter *Asm = Ctx.Asm; @@ -417,14 +412,14 @@ static uint32_t constructAbbreviationTag( AbbrvTag |= Tag << LowerBitSize; return AbbrvTag; } -template <typename DataT> -void Dwarf5AccelTableWriter<DataT>::populateAbbrevsMap() { +void Dwarf5AccelTableWriter::populateAbbrevsMap() { for (auto &Bucket : Contents.getBuckets()) { for (auto *Hash : Bucket) { for (auto *Value : Hash->Values) { std::optional<DWARF5AccelTable::UnitIndexAndEncoding> EntryRet = - getIndexForEntry(*static_cast<const DataT *>(Value)); - unsigned Tag = static_cast<const DataT *>(Value)->getDieTag(); + getIndexForEntry(*static_cast<const DWARF5AccelTableData *>(Value)); + unsigned Tag = + static_cast<const DWARF5AccelTableData *>(Value)->getDieTag(); uint32_t AbbrvTag = constructAbbreviationTag(Tag, EntryRet); if (Abbreviations.count(AbbrvTag) == 0) { SmallVector<DWARF5AccelTableData::AttributeEncoding, 2> UA; @@ -438,8 +433,7 @@ void Dwarf5AccelTableWriter<DataT>::populateAbbrevsMap() { } } -template <typename DataT> -void Dwarf5AccelTableWriter<DataT>::emitCUList() const { +void Dwarf5AccelTableWriter::emitCUList() const { for (const auto &CU : enumerate(CompUnits)) { Asm->OutStreamer->AddComment("Compilation unit " + Twine(CU.index())); if (std::holds_alternative<MCSymbol *>(CU.value())) @@ -449,8 +443,7 @@ void Dwarf5AccelTableWriter<DataT>::emitCUList() const { } } -template <typename DataT> -void Dwarf5AccelTableWriter<DataT>::emitTUList() const { +void Dwarf5AccelTableWriter::emitTUList() const { for (const auto &TU : enumerate(TypeUnits)) { Asm->OutStreamer->AddComment("Type unit " + Twine(TU.index())); if (std::holds_alternative<MCSymbol *>(TU.value())) @@ -462,8 +455,7 @@ void Dwarf5AccelTableWriter<DataT>::emitTUList() const { } } -template <typename DataT> -void Dwarf5AccelTableWriter<DataT>::emitBuckets() const { +void Dwarf5AccelTableWriter::emitBuckets() const { uint32_t Index = 1; for (const auto &Bucket : enumerate(Contents.getBuckets())) { Asm->OutStreamer->AddComment("Bucket " + Twine(Bucket.index())); @@ -472,8 +464,7 @@ void Dwarf5AccelTableWriter<DataT>::emitBuckets() const { } } -template <typename DataT> -void Dwarf5AccelTableWriter<DataT>::emitStringOffsets() const { +void Dwarf5AccelTableWriter::emitStringOffsets() const { for (const auto &Bucket : enumerate(Contents.getBuckets())) { for (auto *Hash : Bucket.value()) { DwarfStringPoolEntryRef String = Hash->Name; @@ -484,8 +475,7 @@ void Dwarf5AccelTableWriter<DataT>::emitStringOffsets() const { } } -template <typename DataT> -void Dwarf5AccelTableWriter<DataT>::emitAbbrevs() const { +void Dwarf5AccelTableWriter::emitAbbrevs() const { Asm->OutStreamer->emitLabel(AbbrevStart); for (const auto &Abbrev : Abbreviations) { Asm->OutStreamer->AddComment("Abbrev code"); @@ -506,8 +496,8 @@ void Dwarf5AccelTableWriter<DataT>::emitAbbrevs() const { Asm->OutStreamer->emitLabel(AbbrevEnd); } -template <typename DataT> -void Dwarf5AccelTableWriter<DataT>::emitEntry(const DataT &Entry) const { +void Dwarf5AccelTableWriter::emitEntry( + const DWARF5AccelTableData &Entry) const { std::optional<DWARF5AccelTable::UnitIndexAndEncoding> EntryRet = getIndexForEntry(Entry); uint32_t AbbrvTag = constructAbbreviationTag(Entry.getDieTag(), EntryRet); @@ -537,27 +527,26 @@ void Dwarf5AccelTableWriter<DataT>::emitEntry(const DataT &Entry) const { } } -template <typename DataT> void Dwarf5AccelTableWriter<DataT>::emitData() const { +void Dwarf5AccelTableWriter::emitData() const { Asm->OutStreamer->emitLabel(EntryPool); for (auto &Bucket : Contents.getBuckets()) { for (auto *Hash : Bucket) { // Remember to emit the label for our offset. Asm->OutStreamer->emitLabel(Hash->Sym); for (const auto *Value : Hash->Values) - emitEntry(*static_cast<const DataT *>(Value)); + emitEntry(*static_cast<const DWARF5AccelTableData *>(Value)); Asm->OutStreamer->AddComment("End of list: " + Hash->Name.getString()); Asm->emitInt8(0); } } } -template <typename DataT> -Dwarf5AccelTableWriter<DataT>::Dwarf5AccelTableWriter( +Dwarf5AccelTableWriter::Dwarf5AccelTableWriter( AsmPrinter *Asm, const AccelTableBase &Contents, ArrayRef<std::variant<MCSymbol *, uint64_t>> CompUnits, ArrayRef<std::variant<MCSymbol *, uint64_t>> TypeUnits, - llvm::function_ref< - std::optional<DWARF5AccelTable::UnitIndexAndEncoding>(const DataT &)> + llvm::function_ref<std::optional<DWARF5AccelTable::UnitIndexAndEncoding>( + const DWARF5AccelTableData &)> getIndexForEntry, bool IsSplitDwarf) : AccelTableWriter(Asm, Contents, false), @@ -570,7 +559,7 @@ Dwarf5AccelTableWriter<DataT>::Dwarf5AccelTableWriter( populateAbbrevsMap(); } -template <typename DataT> void Dwarf5AccelTableWriter<DataT>::emit() { +void Dwarf5AccelTableWriter::emit() { Header.emit(*this); emitCUList(); emitTUList(); @@ -635,7 +624,7 @@ void llvm::emitDWARF5AccelTable( DIEInteger::BestForm(/*IsSigned*/ false, CompUnits.size() - 1); dwarf::Form TUIndexForm = DIEInteger::BestForm(/*IsSigned*/ false, TypeUnits.size() - 1); - Dwarf5AccelTableWriter<DWARF5AccelTableData>( + Dwarf5AccelTableWriter( Asm, Contents, CompUnits, TypeUnits, [&](const DWARF5AccelTableData &Entry) -> std::optional<DWARF5AccelTable::UnitIndexAndEncoding> { @@ -667,8 +656,7 @@ void llvm::emitDWARF5AccelTable( getIndexForEntry) { std::vector<std::variant<MCSymbol *, uint64_t>> TypeUnits; Contents.finalize(Asm, "names"); - Dwarf5AccelTableWriter<DWARF5AccelTableData>(Asm, Contents, CUs, TypeUnits, - getIndexForEntry, false) + Dwarf5AccelTableWriter(Asm, Contents, CUs, TypeUnits, getIndexForEntry, false) .emit(); } |