[lld] r311338 - [llvm-pdbutil] Add support for dumping detailed module stats.

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 21 07:53:26 PDT 2017


Author: zturner
Date: Mon Aug 21 07:53:25 2017
New Revision: 311338

URL: http://llvm.org/viewvc/llvm-project?rev=311338&view=rev
Log:
[llvm-pdbutil] Add support for dumping detailed module stats.

This adds support for dumping a summary of module symbols
and CodeView debug chunks.  This option prints a table for
each module of all of the symbols that occurred in the module
and the number of times it occurred and total byte size.  Then
at the end it prints the totals for the entire file.

Additionally, this patch adds the -jmc (just my code) option,
which suppresses modules which are from external libraries or
linker imports, so that you can focus only on the object files
and libraries that originate from your own source code.

Modified:
    lld/trunk/test/COFF/pdb-diff.test
    lld/trunk/test/COFF/pdb-lib.s
    lld/trunk/test/COFF/pdb-linker-module.test
    lld/trunk/test/COFF/pdb.test

Modified: lld/trunk/test/COFF/pdb-diff.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-diff.test?rev=311338&r1=311337&r2=311338&view=diff
==============================================================================
--- lld/trunk/test/COFF/pdb-diff.test (original)
+++ lld/trunk/test/COFF/pdb-diff.test Mon Aug 21 07:53:25 2017
@@ -60,7 +60,7 @@ CHECK-NEXT:   |           Public Symbol
 CHECK-NEXT:   |------------------------------+---|
 CHECK-NEXT:   |           Global Symbol Hash | {{[EI]}} |
 CHECK-NEXT:   |------------------------------+---|
-CHECK-NEXT:   |        Public Symbol Records | {{[EI]}} |
+CHECK-NEXT:   |               Symbol Records | {{[EI]}} |
 CHECK-NEXT:   |------------------------------+---|
 CHECK-NEXT:   ------------------------------------
 CHECK-NEXT:   |           String Table           |

Modified: lld/trunk/test/COFF/pdb-lib.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-lib.s?rev=311338&r1=311337&r2=311338&view=diff
==============================================================================
--- lld/trunk/test/COFF/pdb-lib.s (original)
+++ lld/trunk/test/COFF/pdb-lib.s Mon Aug 21 07:53:25 2017
@@ -11,15 +11,15 @@
 
 # CHECK:                               Modules
 # CHECK-NEXT: ============================================================
-# CHECK-NEXT:   Mod 0000 | Name: `{{.*pdb-lib.s.tmp[/\\]foo.obj}}`:
+# CHECK-NEXT:   Mod 0000 | `{{.*pdb-lib.s.tmp[/\\]foo.obj}}`:
 # CHECK-NEXT:              Obj: `{{.*pdb-lib.s.tmp[/\\]foo.obj}}`:
 # CHECK-NEXT:              debug stream: 9, # files: 0, has ec info: false
 # CHECK-NEXT:              pdb file ni: 0 ``, src file ni: 0 ``
-# CHECK-NEXT:   Mod 0001 | Name: `bar.obj`:
+# CHECK-NEXT:   Mod 0001 | `bar.obj`:
 # CHECK-NEXT:              Obj: `{{.*pdb-lib.s.tmp[/\\]bar.lib}}`:
 # CHECK-NEXT:              debug stream: 10, # files: 0, has ec info: false
 # CHECK-NEXT:              pdb file ni: 0 ``, src file ni: 0 ``
-# CHECK-NEXT:   Mod 0002 | Name: `* Linker *`:
+# CHECK-NEXT:   Mod 0002 | `* Linker *`:
 # CHECK-NEXT:              Obj: ``:
 # CHECK-NEXT:              debug stream: 11, # files: 0, has ec info: false
 # CHECK-NEXT:              pdb file ni: 1 `{{.*foo.pdb}}`, src file ni: 0 ``

Modified: lld/trunk/test/COFF/pdb-linker-module.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-linker-module.test?rev=311338&r1=311337&r2=311338&view=diff
==============================================================================
--- lld/trunk/test/COFF/pdb-linker-module.test (original)
+++ lld/trunk/test/COFF/pdb-linker-module.test Mon Aug 21 07:53:25 2017
@@ -1,18 +1,24 @@
 RUN: lld-link /debug /pdb:%t.pdb /nodefaultlib /entry:main %S/Inputs/pdb-diff.obj
-RUN: llvm-pdbutil dump -modules -symbols %t.pdb | FileCheck %s
+RUN: llvm-pdbutil dump -modules %t.pdb | FileCheck --check-prefix=MODS %s
+RUN: llvm-pdbutil dump -symbols %t.pdb | FileCheck --check-prefix=SYMS %s
 
-CHECK:      Mod 0001 | `* Linker *`:
-CHECK-NEXT:  4 | S_OBJNAME [size = 20] sig=0, `* Linker *`
-CHECK-NEXT: 24 | S_COMPILE3 [size = 40]
-CHECK-NEXT:      machine = intel 80386, Ver = LLVM Linker, language = link
-CHECK-NEXT:      frontend = 0.0.0.0, backend = 14.10.25019.0
-CHECK-NEXT:      flags = none
-CHECK-NEXT: 64 | S_ENVBLOCK
-CHECK-NEXT: - cwd
-CHECK-NEXT: -
-CHECK-NEXT: - exe
-CHECK-NEXT: - {{.*}}lld-link
-CHECK-NEXT: - pdb
-CHECK-NEXT: - {{.*}}pdb-linker-module{{.*}}pdb
-CHECK-NEXT: - cmd
-CHECK-NEXT: - /debug /pdb:{{.*}}pdb-linker-module{{.*}}pdb /nodefaultlib /entry:main {{.*}}pdb-diff.obj
+MODS:      Mod 0001 | `* Linker *`
+MODS-NEXT:             Obj: ``:
+MODS-NEXT:             debug stream: 10, # files: 0, has ec info: false
+MODS-NEXT:             pdb file ni: 1 `{{.*}}pdb-linker-module.test.tmp.pdb`, src file ni: 0 ``
+
+SYMS:      Mod 0001 | `* Linker *`
+SYMS-NEXT:  4 | S_OBJNAME [size = 20] sig=0, `* Linker *`
+SYMS-NEXT: 24 | S_COMPILE3 [size = 40]
+SYMS-NEXT:      machine = intel 80386, Ver = LLVM Linker, language = link
+SYMS-NEXT:      frontend = 0.0.0.0, backend = 14.10.25019.0
+SYMS-NEXT:      flags = none
+SYMS-NEXT: 64 | S_ENVBLOCK
+SYMS-NEXT: - cwd
+SYMS-NEXT: -
+SYMS-NEXT: - exe
+SYMS-NEXT: - {{.*}}lld-link
+SYMS-NEXT: - pdb
+SYMS-NEXT: - {{.*}}pdb-linker-module{{.*}}pdb
+SYMS-NEXT: - cmd
+SYMS-NEXT: - /debug /pdb:{{.*}}pdb-linker-module{{.*}}pdb /nodefaultlib /entry:main {{.*}}pdb-diff.obj

Modified: lld/trunk/test/COFF/pdb.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb.test?rev=311338&r1=311337&r2=311338&view=diff
==============================================================================
--- lld/trunk/test/COFF/pdb.test (original)
+++ lld/trunk/test/COFF/pdb.test Mon Aug 21 07:53:25 2017
@@ -119,15 +119,15 @@
 
 RAW:                               Modules
 RAW-NEXT: ============================================================
-RAW-NEXT:   Mod 0000 | Name: `{{.*}}pdb.test.tmp1.obj`:
+RAW-NEXT:   Mod 0000 | `{{.*}}pdb.test.tmp1.obj`:
 RAW-NEXT:              Obj: `{{.*}}pdb.test.tmp1.obj`:
 RAW-NEXT:              debug stream: 9, # files: 1, has ec info: false
 RAW-NEXT:              pdb file ni: 0 ``, src file ni: 0 ``
-RAW-NEXT:   Mod 0001 | Name: `{{.*}}pdb.test.tmp2.obj`:
+RAW-NEXT:   Mod 0001 | `{{.*}}pdb.test.tmp2.obj`:
 RAW-NEXT:              Obj: `{{.*}}pdb.test.tmp2.obj`:
 RAW-NEXT:              debug stream: 10, # files: 1, has ec info: false
 RAW-NEXT:              pdb file ni: 0 ``, src file ni: 0 ``
-RAW-NEXT:   Mod 0002 | Name: `* Linker *`:
+RAW-NEXT:   Mod 0002 | `* Linker *`:
 RAW-NEXT:              Obj: ``:
 RAW-NEXT:              debug stream: 11, # files: 0, has ec info: false
 RAW-NEXT:              pdb file ni: 1 `{{.*pdb.test.tmp.pdb}}`, src file ni: 0 ``




More information about the llvm-commits mailing list