[llvm] [DWARF] Refactor findDebugNamesOffsets (PR #88064)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 8 15:57:05 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-debuginfo
Author: Fangrui Song (MaskRay)
<details>
<summary>Changes</summary>
Address some post-review comments in #<!-- -->82153 and move the function inside
llvm::dwarf, used by certain free functions.
---
Full diff: https://github.com/llvm/llvm-project/pull/88064.diff
2 Files Affected:
- (modified) llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h (+5-3)
- (modified) llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp (+8-6)
``````````diff
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
index f1d4fc72d5a727..9543b78ea61309 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
@@ -804,9 +804,11 @@ class DWARFDebugNames : public DWARFAcceleratorTable {
/// Calculates the starting offsets for various sections within the
/// .debug_names section.
-void findDebugNamesOffsets(DWARFDebugNames::DWARFDebugNamesOffsets &Offsets,
- uint64_t HdrSize, const dwarf::DwarfFormat Format,
- const DWARFDebugNames::Header &Hdr);
+namespace dwarf {
+DWARFDebugNames::DWARFDebugNamesOffsets
+findDebugNamesOffsets(uint64_t EndOfHeaderOffset,
+ const DWARFDebugNames::Header &Hdr);
+}
/// If `Name` is the name of a templated function that includes template
/// parameters, returns a substring of `Name` containing no template
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp b/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
index 9c65d85985f1bb..3a84784ff967f0 100644
--- a/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
+++ b/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
@@ -552,11 +552,12 @@ DWARFDebugNames::NameIndex::extractAbbrev(uint64_t *Offset) {
return Abbrev(Code, dwarf::Tag(Tag), AbbrevOffset, std::move(*AttrEncOr));
}
-void llvm::findDebugNamesOffsets(
- DWARFDebugNames::DWARFDebugNamesOffsets &Offsets, uint64_t HdrSize,
- dwarf::DwarfFormat Format, const DWARFDebugNames::Header &Hdr) {
- uint32_t DwarfSize = (Format == llvm::dwarf::DwarfFormat::DWARF64) ? 8 : 4;
- uint64_t Offset = HdrSize;
+DWARFDebugNames::DWARFDebugNamesOffsets
+dwarf::findDebugNamesOffsets(uint64_t EndOfHeaderOffset,
+ const DWARFDebugNames::Header &Hdr) {
+ DWARFDebugNames::DWARFDebugNamesOffsets Offsets;
+ uint32_t DwarfSize = Hdr.Format == dwarf::DwarfFormat::DWARF64 ? 8 : 4;
+ uint64_t Offset = EndOfHeaderOffset;
Offsets.CUsBase = Offset;
Offset += Hdr.CompUnitCount * DwarfSize;
Offset += Hdr.LocalTypeUnitCount * DwarfSize;
@@ -577,6 +578,7 @@ void llvm::findDebugNamesOffsets(
Offset += Hdr.AbbrevTableSize;
Offsets.EntriesBase = Offset;
+ return Offsets;
}
Error DWARFDebugNames::NameIndex::extract() {
@@ -586,7 +588,7 @@ Error DWARFDebugNames::NameIndex::extract() {
return E;
const unsigned SectionOffsetSize = dwarf::getDwarfOffsetByteSize(Hdr.Format);
- findDebugNamesOffsets(Offsets, hdrSize, Hdr.Format, Hdr);
+ Offsets = dwarf::findDebugNamesOffsets(hdrSize, Hdr);
uint64_t Offset =
Offsets.EntryOffsetsBase + (Hdr.NameCount * SectionOffsetSize);
``````````
</details>
https://github.com/llvm/llvm-project/pull/88064
More information about the llvm-commits
mailing list