summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2019-03-22 21:22:13 +0000
committerReid Kleckner <rnk@google.com>2019-03-22 21:22:13 +0000
commite6a81b9bec04d3f8d459ef9cd0bcc881bde6c20f (patch)
tree92c8c4b7477c02651948a817b0b0dcd348a89e7e /llvm/test
parentd2e0ed7755671039f75f90803793d44e93b3ef56 (diff)
downloadbcm5719-llvm-e6a81b9bec04d3f8d459ef9cd0bcc881bde6c20f.tar.gz
bcm5719-llvm-e6a81b9bec04d3f8d459ef9cd0bcc881bde6c20f.zip
[pdb] Add -type-stats and sort stats by descending size
Summary: It prints this on chromium browser_tests.exe.pdb: Types Total: 5647475 entries ( 371,897,512 bytes, 65.85 avg) -------------------------------------------------------------------------- LF_CLASS: 397894 entries ( 119,537,780 bytes, 300.43 avg) LF_STRUCTURE: 236351 entries ( 83,208,084 bytes, 352.05 avg) LF_FIELDLIST: 291003 entries ( 66,087,920 bytes, 227.10 avg) LF_MFUNCTION: 1884176 entries ( 52,756,928 bytes, 28.00 avg) LF_POINTER: 1149030 entries ( 13,877,344 bytes, 12.08 avg) LF_ARGLIST: 789980 entries ( 12,436,752 bytes, 15.74 avg) LF_METHODLIST: 361498 entries ( 8,351,008 bytes, 23.10 avg) LF_ENUM: 16069 entries ( 6,108,340 bytes, 380.13 avg) LF_PROCEDURE: 269374 entries ( 4,309,984 bytes, 16.00 avg) LF_MODIFIER: 235602 entries ( 2,827,224 bytes, 12.00 avg) LF_UNION: 9131 entries ( 2,072,168 bytes, 226.94 avg) LF_VFTABLE: 323 entries ( 207,784 bytes, 643.29 avg) LF_ARRAY: 6639 entries ( 106,380 bytes, 16.02 avg) LF_VTSHAPE: 126 entries ( 6,472 bytes, 51.37 avg) LF_BITFIELD: 278 entries ( 3,336 bytes, 12.00 avg) LF_LABEL: 1 entries ( 8 bytes, 8.00 avg) The PDB is overall 1.9GB, so the LF_CLASS and LF_STRUCTURE declarations account for about 10% of the overall file size. I was surprised to find that on average LF_FIELDLIST records are short. Maybe this is because there are many more types with short member lists than there are instantiations with lots of members, like std::vector. Reviewers: aganea, zturner Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59672 llvm-svn: 356813
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/DebugInfo/PDB/module-stats.test38
-rw-r--r--llvm/test/DebugInfo/PDB/type-stats.test17
-rw-r--r--llvm/test/DebugInfo/PDB/udt-stats.test6
3 files changed, 39 insertions, 22 deletions
diff --git a/llvm/test/DebugInfo/PDB/module-stats.test b/llvm/test/DebugInfo/PDB/module-stats.test
index c2c58339ae0..cb0204d6361 100644
--- a/llvm/test/DebugInfo/PDB/module-stats.test
+++ b/llvm/test/DebugInfo/PDB/module-stats.test
@@ -6,28 +6,28 @@ ALL-NEXT: Stream 12, 308 bytes
ALL: Symbols
ALL-NEXT: Total: 6 entries ( 204 bytes)
ALL-NEXT: --------------------------------------------------------------------------
+ALL-NEXT: S_COMPILE3: 1 entries ( 60 bytes)
+ALL-NEXT: S_OBJNAME: 1 entries ( 56 bytes)
ALL-NEXT: S_GPROC32: 1 entries ( 44 bytes)
ALL-NEXT: S_FRAMEPROC: 1 entries ( 32 bytes)
-ALL-NEXT: S_END: 1 entries ( 4 bytes)
-ALL-NEXT: S_OBJNAME: 1 entries ( 56 bytes)
-ALL-NEXT: S_COMPILE3: 1 entries ( 60 bytes)
ALL-NEXT: S_BUILDINFO: 1 entries ( 8 bytes)
+ALL-NEXT: S_END: 1 entries ( 4 bytes)
ALL: Chunks
ALL-NEXT: Total: 2 entries ( 88 bytes)
ALL-NEXT: --------------------------------------------------------------------------
-ALL-NEXT: DEBUG_S_FILECHKSMS: 1 entries ( 32 bytes)
ALL-NEXT: DEBUG_S_LINES: 1 entries ( 56 bytes)
+ALL-NEXT: DEBUG_S_FILECHKSMS: 1 entries ( 32 bytes)
ALL-NEXT: Mod 0001 | `* Linker *`:
ALL-NEXT: Stream 14, 520 bytes
ALL: Symbols
ALL-NEXT: Total: 13 entries ( 512 bytes)
ALL-NEXT: --------------------------------------------------------------------------
-ALL-NEXT: S_SECTION: 4 entries ( 112 bytes)
ALL-NEXT: S_ENVBLOCK: 1 entries ( 172 bytes)
+ALL-NEXT: S_COFFGROUP: 5 entries ( 140 bytes)
+ALL-NEXT: S_SECTION: 4 entries ( 112 bytes)
+ALL-NEXT: S_COMPILE3: 1 entries ( 48 bytes)
ALL-NEXT: S_TRAMPOLINE: 1 entries ( 20 bytes)
ALL-NEXT: S_OBJNAME: 1 entries ( 20 bytes)
-ALL-NEXT: S_COMPILE3: 1 entries ( 48 bytes)
-ALL-NEXT: S_COFFGROUP: 5 entries ( 140 bytes)
ALL: Chunks
ALL-NEXT: Total: 0 entries ( 0 bytes)
ALL-NEXT: --------------------------------------------------------------------------
@@ -35,21 +35,21 @@ ALL-NEXT: Summary |
ALL: Symbols
ALL-NEXT: Total: 19 entries ( 716 bytes)
ALL-NEXT: --------------------------------------------------------------------------
+ALL-NEXT: S_ENVBLOCK: 1 entries ( 172 bytes)
+ALL-NEXT: S_COFFGROUP: 5 entries ( 140 bytes)
ALL-NEXT: S_SECTION: 4 entries ( 112 bytes)
+ALL-NEXT: S_COMPILE3: 2 entries ( 108 bytes)
+ALL-NEXT: S_OBJNAME: 2 entries ( 76 bytes)
ALL-NEXT: S_GPROC32: 1 entries ( 44 bytes)
-ALL-NEXT: S_ENVBLOCK: 1 entries ( 172 bytes)
ALL-NEXT: S_FRAMEPROC: 1 entries ( 32 bytes)
ALL-NEXT: S_TRAMPOLINE: 1 entries ( 20 bytes)
-ALL-NEXT: S_END: 1 entries ( 4 bytes)
-ALL-NEXT: S_OBJNAME: 2 entries ( 76 bytes)
-ALL-NEXT: S_COMPILE3: 2 entries ( 108 bytes)
-ALL-NEXT: S_COFFGROUP: 5 entries ( 140 bytes)
ALL-NEXT: S_BUILDINFO: 1 entries ( 8 bytes)
+ALL-NEXT: S_END: 1 entries ( 4 bytes)
ALL: Chunks
ALL-NEXT: Total: 2 entries ( 88 bytes)
ALL-NEXT: --------------------------------------------------------------------------
-ALL-NEXT: DEBUG_S_FILECHKSMS: 1 entries ( 32 bytes)
ALL-NEXT: DEBUG_S_LINES: 1 entries ( 56 bytes)
+ALL-NEXT: DEBUG_S_FILECHKSMS: 1 entries ( 32 bytes)
ONE-NOT: Mod 0000
ONE: Mod 0001 | `* Linker *`:
@@ -57,12 +57,12 @@ ONE-NEXT: Stream 14, 520 bytes
ONE: Symbols
ONE-NEXT: Total: 13 entries ( 512 bytes)
ONE-NEXT: --------------------------------------------------------------------------
-ONE-NEXT: S_SECTION: 4 entries ( 112 bytes)
ONE-NEXT: S_ENVBLOCK: 1 entries ( 172 bytes)
+ONE-NEXT: S_COFFGROUP: 5 entries ( 140 bytes)
+ONE-NEXT: S_SECTION: 4 entries ( 112 bytes)
+ONE-NEXT: S_COMPILE3: 1 entries ( 48 bytes)
ONE-NEXT: S_TRAMPOLINE: 1 entries ( 20 bytes)
ONE-NEXT: S_OBJNAME: 1 entries ( 20 bytes)
-ONE-NEXT: S_COMPILE3: 1 entries ( 48 bytes)
-ONE-NEXT: S_COFFGROUP: 5 entries ( 140 bytes)
ONE: Chunks
ONE-NEXT: Total: 0 entries ( 0 bytes)
ONE-NEXT: --------------------------------------------------------------------------
@@ -70,12 +70,12 @@ ONE-NEXT: Summary |
ONE: Symbols
ONE-NEXT: Total: 13 entries ( 512 bytes)
ONE-NEXT: --------------------------------------------------------------------------
-ONE-NEXT: S_SECTION: 4 entries ( 112 bytes)
ONE-NEXT: S_ENVBLOCK: 1 entries ( 172 bytes)
+ONE-NEXT: S_COFFGROUP: 5 entries ( 140 bytes)
+ONE-NEXT: S_SECTION: 4 entries ( 112 bytes)
+ONE-NEXT: S_COMPILE3: 1 entries ( 48 bytes)
ONE-NEXT: S_TRAMPOLINE: 1 entries ( 20 bytes)
ONE-NEXT: S_OBJNAME: 1 entries ( 20 bytes)
-ONE-NEXT: S_COMPILE3: 1 entries ( 48 bytes)
-ONE-NEXT: S_COFFGROUP: 5 entries ( 140 bytes)
ONE: Chunks
ONE-NEXT: Total: 0 entries ( 0 bytes)
ONE-NEXT: --------------------------------------------------------------------------
diff --git a/llvm/test/DebugInfo/PDB/type-stats.test b/llvm/test/DebugInfo/PDB/type-stats.test
new file mode 100644
index 00000000000..1fff263a954
--- /dev/null
+++ b/llvm/test/DebugInfo/PDB/type-stats.test
@@ -0,0 +1,17 @@
+; RUN: llvm-pdbutil dump -type-stats %p/Inputs/empty.pdb | FileCheck --check-prefix=ALL %s
+
+ALL: Type Record Stats
+ALL-NEXT: ============================================================
+
+ALL: Types
+ALL-NEXT: Total: 75 entries ( 5,336 bytes, 71.15 avg)
+ALL-NEXT: --------------------------------------------------------------------------
+ALL-NEXT: LF_FIELDLIST: 14 entries ( 1,956 bytes, 139.71 avg)
+ALL-NEXT: LF_STRUCTURE: 14 entries ( 1,584 bytes, 113.14 avg)
+ALL-NEXT: LF_ENUM: 8 entries ( 988 bytes, 123.50 avg)
+ALL-NEXT: LF_MFUNCTION: 14 entries ( 392 bytes, 28.00 avg)
+ALL-NEXT: LF_ARGLIST: 10 entries ( 176 bytes, 17.60 avg)
+ALL-NEXT: LF_METHODLIST: 5 entries ( 116 bytes, 23.20 avg)
+ALL-NEXT: LF_POINTER: 8 entries ( 96 bytes, 12.00 avg)
+ALL-NEXT: LF_PROCEDURE: 1 entries ( 16 bytes, 16.00 avg)
+ALL-NEXT: LF_MODIFIER: 1 entries ( 12 bytes, 12.00 avg)
diff --git a/llvm/test/DebugInfo/PDB/udt-stats.test b/llvm/test/DebugInfo/PDB/udt-stats.test
index 0ffda9c3008..35bfad8f315 100644
--- a/llvm/test/DebugInfo/PDB/udt-stats.test
+++ b/llvm/test/DebugInfo/PDB/udt-stats.test
@@ -4,12 +4,12 @@ CHECK: S_UDT Record Stats
CHECK-NEXT: ============================================================
CHECK: Record Kind | Count Size
CHECK-NEXT: -----------------------------
-CHECK-NEXT: LF_ENUM | 3 188
+CHECK-NEXT: LF_STRUCTURE | 27 1,788
CHECK-NEXT: LF_POINTER | 39 468
+CHECK-NEXT: LF_ENUM | 3 188
CHECK-NEXT: LF_UNION | 1 52
-CHECK-NEXT: <simple type> | 43 0
CHECK-NEXT: LF_PROCEDURE | 1 16
-CHECK-NEXT: LF_STRUCTURE | 27 1,788
+CHECK-NEXT: <simple type> | 43 0
CHECK-NEXT: -----------------------------
CHECK-NEXT: Total (S_UDT) | 114 2,604
CHECK-NEXT: -----------------------------
OpenPOWER on IntegriCloud