summaryrefslogtreecommitdiffstats
path: root/lld/COFF/DebugTypes.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use lld::make<T> to make TpiSource objectsRui Ueyama2019-11-201-10/+7
| | | | | | | | In lld we rarely use std::unique_ptr but instead allocate new instances using lld::make<T>() so that they are deallocated at the end of linking. This patch changes existing code so that that follows the convention. Differential Revision: https://reviews.llvm.org/D70420
* [COFF] Wrap definitions in namespace lld { namespace coff {. NFCFangrui Song2019-10-101-13/+12
| | | | | | | | | | | Similar to D67323, but for COFF. Many lld/COFF/ files already use `namespace lld { namespace coff {`. Only a few need changing. Reviewed By: ruiu Differential Revision: https://reviews.llvm.org/D68772 llvm-svn: 374314
* reland "[lld-link] implement -start-lib and -end-lib"Bob Haarman2019-09-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is a re-land of r370487 with a fix for the use-after-free bug that rev contained. This implements -start-lib and -end-lib flags for lld-link, analogous to the similarly named options in ld.lld. Object files after -start-lib are included in the link only when needed to resolve undefined symbols. The -end-lib flag goes back to the normal behavior of always including object files in the link. This mimics the semantics of static libraries, but without needing to actually create the archive file. Reviewers: ruiu, smeenai, MaskRay Reviewed By: ruiu, MaskRay Subscribers: akhuang, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66848 llvm-svn: 370816
* Revert "[lld-link] implement -start-lib and -end-lib"Vlad Tsyrklevich2019-08-301-1/+1
| | | | | | | This reverts commit r370487 as it is causing ASan/MSan failures on sanitizer-x86_64-linux-fast llvm-svn: 370550
* [lld-link] implement -start-lib and -end-libBob Haarman2019-08-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | Summary: This implements -start-lib and -end-lib flags for lld-link, analogous to the similarly named options in ld.lld. Object files after -start-lib are included in the link only when needed to resolve undefined symbols. The -end-lib flag goes back to the normal behavior of always including object files in the link. This mimics the semantics of static libraries, but without needing to actually create the archive file. Reviewers: ruiu, smeenai, MaskRay Reviewed By: ruiu, MaskRay Subscribers: akhuang, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66848 llvm-svn: 370487
* [Coding style change][lld] Rename variables for non-ELF portsRui Ueyama2019-07-111-96/+96
| | | | | | | | | | | This patch does the same thing as r365595 to other subdirectories, which completes the naming style change for the entire lld directory. With this, the naming style conversion is complete for lld. Differential Revision: https://reviews.llvm.org/D64473 llvm-svn: 365730
* [LLD][COFF] Don't take into account the 'age' when looking for PDB type serverAlexandre Ganea2019-06-051-2/+2
| | | | | | | | The age field is only there to say how many times an OBJ or a PDB was incrementally linked. It shouldn't be used to validate the link between the OBJ and the PDB. Differential Revision: https://reviews.llvm.org/D62837 llvm-svn: 362572
* Re-land [LLD][COFF] Early load PDB type server filesAlexandre Ganea2019-06-031-17/+197
| | | | | | | | | | We need to have all input files ready before doing debuginfo type merging. This patch is moving the late PDB type server discovery much earlier in the process, when the explicit inputs (OBJs, LIBs) are loaded. The short term goal is to parallelize type merging. Differential Revision: https://reviews.llvm.org/D60095 llvm-svn: 362393
* Revert r361842 as it breaks LLDB :: tools/lldb-mi/exec/exec-finish.testAlexandre Ganea2019-05-281-196/+17
| | | | llvm-svn: 361876
* [LLD][COFF] Early load PDB type server filesAlexandre Ganea2019-05-281-17/+196
| | | | | | | | | | We need to have all input files ready before doing debuginfo type merging. This patch is moving the late PDB type server discovery much earlier in the process, when the explicit inputs (OBJs, LIBs) are loaded. The short term goal is to parallelize type merging. Differential Revision: https://reviews.llvm.org/D60095 llvm-svn: 361842
* [NFC][LLD] Specify namespaces explicity to fix build failure on GCC 5 after ↵Matthew Voss2019-04-011-3/+7
| | | | | | r357383 llvm-svn: 357421
* Fix builder.Alexandre Ganea2019-04-011-2/+2
| | | | | | http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fuzzer/builds/24702/steps/check-fuzzer/logs/stdio llvm-svn: 357391
* [LLD][COFF] Early dependency detectionAlexandre Ganea2019-04-011-0/+84
We introduce a new class hierarchy for debug types merging (in DebugTypes.h). The end-goal is to parallelize the type merging - please see the plan in D59226. Previously, dependency discovery was done on the fly, much later, during the type merging loop. Unfortunately, parallelizing the type merging requires the dependencies to be merged in first, before any dependent ObjFile, thus this early discovery. The overall intention for this path is to discover debug information dependencies at a much earlier stage, when processing input files. Currently, two types of dependency are supported: PDB type servers (when compiling with MSVC /Zi) and precompiled headers OBJs (when compiling with MSVC /Yc and /Yu). Once discovered, an explicit link is added into the dependent ObjFile, through the new debug types class hierarchy introduced in DebugTypes.h. Differential Revision: https://reviews.llvm.org/D59053 llvm-svn: 357383
OpenPOWER on IntegriCloud