[llvm] [llvm-gsymutil] Improve dumping of call sites for merged functions (PR #119759)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 12 14:14:12 PST 2024
https://github.com/alx32 updated https://github.com/llvm/llvm-project/pull/119759
>From 1aa9deab34c0325a8c18b490e11d7e49c9e6c81a Mon Sep 17 00:00:00 2001
From: Alex B <alexborcan at meta.com>
Date: Thu, 12 Dec 2024 13:08:05 -0800
Subject: [PATCH] [llvm-gsymutil] Improve dumping of callsites for merged
functions
---
llvm/include/llvm/DebugInfo/GSYM/GsymReader.h | 6 +++++-
llvm/lib/DebugInfo/GSYM/GsymReader.cpp | 13 ++++++++-----
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h b/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h
index 72b7f3e7bfc42e..3d532588a70234 100644
--- a/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h
+++ b/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h
@@ -199,7 +199,11 @@ class GsymReader {
/// \param OS The output stream to dump to.
///
/// \param CSIC The CallSiteInfoCollection object to dump.
- void dump(raw_ostream &OS, const CallSiteInfoCollection &CSIC);
+ ///
+ /// \param Indent The indentation as number of spaces. Used when dumping as an
+ /// item from within MergedFunctionsInfo.
+ void dump(raw_ostream &OS, const CallSiteInfoCollection &CSIC,
+ uint32_t Indent = 0);
/// Dump a LineTable object.
///
diff --git a/llvm/lib/DebugInfo/GSYM/GsymReader.cpp b/llvm/lib/DebugInfo/GSYM/GsymReader.cpp
index 7979f1f5d51928..fa5476db191ec4 100644
--- a/llvm/lib/DebugInfo/GSYM/GsymReader.cpp
+++ b/llvm/lib/DebugInfo/GSYM/GsymReader.cpp
@@ -406,13 +406,13 @@ void GsymReader::dump(raw_ostream &OS, const FunctionInfo &FI,
if (FI.Inline)
dump(OS, *FI.Inline, Indent);
+ if (FI.CallSites)
+ dump(OS, *FI.CallSites, Indent);
+
if (FI.MergedFunctions) {
assert(Indent == 0 && "MergedFunctionsInfo should only exist at top level");
dump(OS, *FI.MergedFunctions);
}
-
- if (FI.CallSites)
- dump(OS, *FI.CallSites);
}
void GsymReader::dump(raw_ostream &OS, const MergedFunctionsInfo &MFI) {
@@ -454,10 +454,13 @@ void GsymReader::dump(raw_ostream &OS, const CallSiteInfo &CSI) {
}
}
-void GsymReader::dump(raw_ostream &OS, const CallSiteInfoCollection &CSIC) {
+void GsymReader::dump(raw_ostream &OS, const CallSiteInfoCollection &CSIC,
+ uint32_t Indent) {
+ OS.indent(Indent);
OS << "CallSites (by relative return offset):\n";
for (const auto &CS : CSIC.CallSites) {
- OS.indent(2);
+ OS.indent(Indent);
+ OS << " ";
dump(OS, CS);
OS << "\n";
}
More information about the llvm-commits
mailing list