This is an archive of the discontinued LLVM Phabricator instance.

COFF: Load inputs immediately instead of adding them to a queue.
ClosedPublic

Authored by pcc on Dec 11 2016, 1:54 AM.

Details

Summary

This patch replaces the symbol table's object and archive queues, as well as
the convergent loop in the linker driver, with a design more similar to the
ELF linker where symbol resolution directly causes input files to be added to
the link, including input files arising from linker directives. Effectively
this removes the last vestiges of the old parallel input file loader.

Event Timeline

pcc updated this revision to Diff 81017.Dec 11 2016, 1:54 AM
pcc retitled this revision from to COFF: Load inputs immediately instead of adding them to a queue..
pcc updated this object.
pcc added a reviewer: ruiu.
pcc added a subscriber: llvm-commits.
ruiu edited edge metadata.Dec 11 2016, 12:00 PM

I think this changes the order how object files in archive files are resolved. Can you still link Chromium?

pcc added a comment.Dec 11 2016, 1:52 PM

Yes, I verified that "ninja All" succeeds after this patch.

ruiu accepted this revision.Dec 11 2016, 2:00 PM
ruiu edited edge metadata.

LGTM

lld/COFF/SymbolTable.cpp
36–37

You can assign to MT unconditionally.

lld/COFF/SymbolTable.h
24

I believe you can remove this include.

This revision is now accepted and ready to land.Dec 11 2016, 2:00 PM
This revision was automatically updated to reflect the committed changes.