[llvm-bugs] [Bug 39563] New: Evaluate stripping dead types from PDBs

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Nov 5 13:25:47 PST 2018


https://bugs.llvm.org/show_bug.cgi?id=39563

            Bug ID: 39563
           Summary: Evaluate stripping dead types from PDBs
           Product: lld
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: COFF
          Assignee: unassignedbugs at nondot.org
          Reporter: rnk at google.com
                CC: llvm-bugs at lists.llvm.org, zturner at google.com

When LLD makes a PDB, it includes all types from all objects and type server
PDBs. When MSVC link.exe makes a PDB, it brings in types one at a time as they
are referenced from symbol records, in our observations. This means LLD PDBs
may include extra type information.

This is less of a problem when compiling with clang, because clang only emits
debug info for types that were required to be complete by default
(-fstandalone-debug vs -flimit-debug-info). However, there can still be dead
type info, especially when /OPT:REF is enabled, because that will cause the
code and corresponding symbol records to be discarded at link time. Those
symbol records may reference otherwise dead type information (lambda types
especially).

We should add a tool to llvm-pdbutil to calculate what percentage of type
records and type record bytes are actually referenced by symbol records, and
decide if it's worth spending time in the linker to strip this extra
unreferenced info.

I suspect that it won't be worth doing, but it'd be nice to build a tool to
collect this data.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20181105/26cea0fa/attachment.html>


More information about the llvm-bugs mailing list