[llvm] [DWARF] Refactor findDebugNamesOffsets (PR #88064)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 8 15:56:34 PDT 2024
https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/88064
Address some post-review comments in #82153 and move the function inside
llvm::dwarf, used by certain free functions.
>From f40cc8c50b6e2cda0425cd3a0742f64befcc26f4 Mon Sep 17 00:00:00 2001
From: Fangrui Song <i at maskray.me>
Date: Mon, 8 Apr 2024 15:56:24 -0700
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
=?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Created using spr 1.3.5-bogner
---
.../llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h | 8 +++++---
llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp | 14 ++++++++------
2 files changed, 13 insertions(+), 9 deletions(-)
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);
More information about the llvm-commits
mailing list