[llvm] b67f860 - [llvm-pdbutil] Add missing --id-stats to dump the IPI stream
Alexandre Ganea via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 5 12:11:11 PDT 2020
Author: Alexandre Ganea
Date: 2020-06-05T15:10:54-04:00
New Revision: b67f86020889852d2b318fbf4ec6c10389f8efd8
URL: https://github.com/llvm/llvm-project/commit/b67f86020889852d2b318fbf4ec6c10389f8efd8
DIFF: https://github.com/llvm/llvm-project/commit/b67f86020889852d2b318fbf4ec6c10389f8efd8.diff
LOG: [llvm-pdbutil] Add missing --id-stats to dump the IPI stream
Before this patch, llvm-pdbutil supported only --type-stats to dump stats about a PDB TPI stream.
Adding --id-stats for completion.
Added:
Modified:
llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
llvm/tools/llvm-pdbutil/llvm-pdbutil.h
Removed:
################################################################################
diff --git a/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp b/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
index 32448cec88f6..aa185e8a2f22 100644
--- a/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
+++ b/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
@@ -110,7 +110,7 @@ Error DumpOutputStyle::dump() {
P.NewLine();
}
- if (opts::dump::DumpTypeStats) {
+ if (opts::dump::DumpTypeStats || opts::dump::DumpIDStats) {
if (auto EC = dumpTypeStats())
return EC;
P.NewLine();
@@ -701,7 +701,8 @@ Error DumpOutputStyle::dumpTypeStats() {
// Iterate the types, categorize by kind, accumulate size stats.
StatCollection TypeStats;
- LazyRandomTypeCollection &Types = File.types();
+ LazyRandomTypeCollection &Types =
+ opts::dump::DumpTypeStats ? File.types() : File.ids();
for (Optional<TypeIndex> TI = Types.getFirst(); TI; TI = Types.getNext(*TI)) {
CVType Type = Types.getType(*TI);
TypeStats.update(uint32_t(Type.kind()), Type.length());
@@ -710,18 +711,16 @@ Error DumpOutputStyle::dumpTypeStats() {
P.NewLine();
P.formatLine(" Types");
AutoIndent Indent(P);
- P.formatLine("{0,14}: {1,7} entries ({2,12:N} bytes, {3,7} avg)", "Total",
+ P.formatLine("{0,16}: {1,7} entries ({2,12:N} bytes, {3,7} avg)", "Total",
TypeStats.Totals.Count, TypeStats.Totals.Size,
(double)TypeStats.Totals.Size / TypeStats.Totals.Count);
P.formatLine("{0}", fmt_repeat('-', 74));
for (const auto &K : TypeStats.getStatsSortedBySize()) {
- P.formatLine("{0,14}: {1,7} entries ({2,12:N} bytes, {3,7} avg)",
+ P.formatLine("{0,16}: {1,7} entries ({2,12:N} bytes, {3,7} avg)",
formatTypeLeafKind(TypeLeafKind(K.first)), K.second.Count,
K.second.Size, (double)K.second.Size / K.second.Count);
}
-
-
return Error::success();
}
diff --git a/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp b/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
index 5dc666e06a1a..00092e71c6b4 100644
--- a/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
+++ b/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp
@@ -466,6 +466,10 @@ cl::opt<bool> DumpTypeStats(
"type-stats",
cl::desc("Dump a detailed breakdown of type usage/size"),
cl::cat(MsfOptions), cl::sub(DumpSubcommand));
+cl::opt<bool> DumpIDStats(
+ "id-stats",
+ cl::desc("Dump a detailed breakdown of IPI types usage/size"),
+ cl::cat(MsfOptions), cl::sub(DumpSubcommand));
cl::opt<bool> DumpUdtStats(
"udt-stats",
cl::desc("Dump a detailed breakdown of S_UDT record usage / stats"),
diff --git a/llvm/tools/llvm-pdbutil/llvm-pdbutil.h b/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
index 321f41bba7f1..9fe92c2c9d75 100644
--- a/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
+++ b/llvm/tools/llvm-pdbutil/llvm-pdbutil.h
@@ -141,6 +141,7 @@ extern llvm::cl::opt<bool> DumpFpm;
extern llvm::cl::opt<bool> DumpStreams;
extern llvm::cl::opt<bool> DumpSymbolStats;
extern llvm::cl::opt<bool> DumpTypeStats;
+extern llvm::cl::opt<bool> DumpIDStats;
extern llvm::cl::opt<bool> DumpUdtStats;
extern llvm::cl::opt<bool> DumpStreamBlocks;
More information about the llvm-commits
mailing list