llvm-project/llvm/lib/LTO
Teresa Johnson 040cc16835 [ThinLTO] Import only necessary DICompileUnit fields
Summary:
As discussed on mailing list, for ThinLTO importing we don't need
to import all the fields of the DICompileUnit. Don't import enums,
macros, retained types lists. Also only import local scoped imported
entities. Since we don't currently import any global variables,
we also don't need to import the list of global variables (added an
assert to verify none are being imported).

This is being done by pre-populating the value map entries to map
the unneeded metadata to nullptr. For the imported entities, we can
simply replace the source module's list with a new list containing
only those needed imported entities. This is done in the IRLinker
constructor so that value mapping automatically does the desired
mapping.

Reviewers: mehdi_amini, dexonsmith, dblaikie, aprantl

Subscribers: llvm-commits

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

llvm-svn: 289441
2016-12-12 16:09:30 +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] Import only necessary DICompileUnit fields 2016-12-12 16:09:30 +00:00
LTOBackend.cpp Object: Extract a ModuleSymbolTable class from IRObjectFile. 2016-12-01 06:51:47 +00:00
LTOCodeGenerator.cpp [LTOs] Allow generation of hotness information 2016-12-02 17:53:56 +00:00
LTOModule.cpp Bitcode: Change module reader functions to return an llvm::Expected. 2016-11-13 07:00:17 +00:00
ThinLTOCodeGenerator.cpp [LTOs] Allow generation of hotness information 2016-12-02 17:53:56 +00:00
UpdateCompilerUsed.cpp Utility functions for appending to llvm.used/llvm.compiler.used. 2016-10-25 23:53:31 +00:00