[PATCH] D60095: [LLD][COFF] Move PDB type server loading from PDB.cp early into InputFiles.cpp and introduce PDBInputFile

Alexandre Ganea via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 19 12:43:56 PDT 2019


aganea added a comment.

In D60095#1472111 <https://reviews.llvm.org/D60095#1472111>, @rnk wrote:

> In D60095#1471063 <https://reviews.llvm.org/D60095#1471063>, @ruiu wrote:
>
> > InputFile abstracts the concept of a file containing symbols. In each parse() function, we parse a symbol table and then insert symbols to the symbol table. parse() is part of a symbol resolution process step.
> >
> > Since PDBInputFile doesn't contain any symbols, it doesn't fit to that concept, and it doesn't seem you need to parse them while we parse other types of input files.
> >
> > So, why don't you just add a pdb file to some global list, and after resolving all symbols, parse them in a simple for loop? I guess that's conceptually much simpler.
>
>
> IIUC, the point of this change is to start loading types in parallel as early as possible. The suggestion to accumulate the inputs on the side and wait until after symbol resolution won't exploit all the parallelism that's available.


As long as this goes in the LinkerDriver's TaskQueue, it's fine, no? I could simply move `PDBInputFile` out of the `InputFile` hierarchy, I think that's what @ruiu was proposing?
It wasn't my goal to parallelize the TaskQueue just yet, rather introduce the ghash parallelism first, then parallelize the Type merging.


Repository:
  rLLD LLVM Linker

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60095/new/

https://reviews.llvm.org/D60095





More information about the llvm-commits mailing list