llvm-project/llvm/lib/LTO
Teresa Johnson 6c475a7595 ThinLTO: add early "dead-stripping" on the Index
Summary:
Using the linker-supplied list of "preserved" symbols, we can compute
the list of "dead" symbols, i.e. the one that are not reachable from
a "preserved" symbol transitively on the reference graph.
Right now we are using this information to mark these functions as
non-eligible for import.

The impact is two folds:
- Reduction of compile time: we don't import these functions anywhere
  or import the function these symbols are calling.
- The limited number of import/export leads to better internalization.

Patch originally by Mehdi Amini.

Reviewers: mehdi_amini, pcc

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D23488

llvm-svn: 291177
2017-01-05 21:34:18 +00:00
..
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
Caching.cpp Add qualification to fix MSVC build. 2016-09-23 23:23:23 +00:00
LLVMBuild.txt [lib/LTO] Add a way to run a custom pipeline 2016-09-07 17:46:16 +00:00
LTO.cpp ThinLTO: add early "dead-stripping" on the Index 2017-01-05 21:34:18 +00:00
LTOBackend.cpp [ThinLTO] Import composite types as declarations 2016-12-16 21:25:01 +00:00
LTOCodeGenerator.cpp [LTOs] Allow generation of hotness information 2016-12-02 17:53:56 +00:00
LTOModule.cpp [LTO] Reject modules without datalayout. 2016-12-14 21:57:04 +00:00
ThinLTOCodeGenerator.cpp ThinLTO: add early "dead-stripping" on the Index 2017-01-05 21:34:18 +00:00
UpdateCompilerUsed.cpp Utility functions for appending to llvm.used/llvm.compiler.used. 2016-10-25 23:53:31 +00:00