[llvm-dev] Making LLD PDB generation faster

Leonardo Santagada via llvm-dev llvm-dev at lists.llvm.org
Wed Feb 27 15:36:14 PST 2019

On Thu, 28 Feb 2019 at 00:28, Zachary Turner <zturner at google.com> wrote:

> On Wed, Feb 27, 2019 at 3:17 PM Leonardo Santagada <santagada at gmail.com>
> wrote:
>> Also we are investigating why we have 420 million types being linked
>> while it appears that 95-99 % of them are not being used. De  anyone know
>> if pch can help here? My feeling is not much as template instantiation
>> still generates a ton of weak symbols on the pch users, but I might be
>> confused.
> This probably has to do with the fact that most types are duplicates.  If
> there is a class Foo in a header file, and you include that header file in
> 100 different translation units, all 100 of them of them will get full type
> information for that class in its object file.  This is the /Z7 semantics
> that clang-cl implements.  The alternative is /Zi which uses a type server
> (out of process de-duplicater) to do this merging at compile time, which is
> what cl uses by default, and which clang-cl doesn't support.

Sorry that's what I meant, we generate 420 million type definitions that
get de duplicated to less than 2 million.

We use a distributed build system... We use /Zi saving to one pdb per file
for fastlink or 100 pdbs for normal link, but then both compiling and
building is slow.

Maybe if we could make type server serve all distributed machines that
could work, but I don't think mspdbsrv works like that.

> --

Leonardo Santagada
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190228/7dfaaf69/attachment.html>

More information about the llvm-dev mailing list