1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/test/DebugInfo/PDB/module-stats.test
Reid Kleckner 1eb494baab [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
2019-03-22 21:22:13 +00:00

82 lines
5.9 KiB
Plaintext

; RUN: llvm-pdbutil dump -sym-stats %p/Inputs/empty.pdb | FileCheck --check-prefix=ALL %s
; RUN: llvm-pdbutil dump -sym-stats -modi=1 %p/Inputs/empty.pdb | FileCheck --check-prefix=ONE %s
ALL: Mod 0000 | `d:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj`:
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_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_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_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: Chunks
ALL-NEXT: Total: 0 entries ( 0 bytes)
ALL-NEXT: --------------------------------------------------------------------------
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_FRAMEPROC: 1 entries ( 32 bytes)
ALL-NEXT: S_TRAMPOLINE: 1 entries ( 20 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_LINES: 1 entries ( 56 bytes)
ALL-NEXT: DEBUG_S_FILECHKSMS: 1 entries ( 32 bytes)
ONE-NOT: Mod 0000
ONE: Mod 0001 | `* Linker *`:
ONE-NEXT: Stream 14, 520 bytes
ONE: Symbols
ONE-NEXT: Total: 13 entries ( 512 bytes)
ONE-NEXT: --------------------------------------------------------------------------
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: Chunks
ONE-NEXT: Total: 0 entries ( 0 bytes)
ONE-NEXT: --------------------------------------------------------------------------
ONE-NEXT: Summary |
ONE: Symbols
ONE-NEXT: Total: 13 entries ( 512 bytes)
ONE-NEXT: --------------------------------------------------------------------------
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: Chunks
ONE-NEXT: Total: 0 entries ( 0 bytes)
ONE-NEXT: --------------------------------------------------------------------------