llvm-project/llvm/lib/LTO
Teresa Johnson a61f5e3796 [ThinLTO] Import composite types as declarations
Summary:
When reading the metadata bitcode, create a type declaration when
possible for composite types when we are importing. Doing this in
the bitcode reader saves memory. Also it works naturally in the case
when the type ODR map contains a definition for the same composite type
because it was used in the importing module (buildODRType will
automatically use the existing definition and not create a type
declaration).

For Chromium built with -g2, this reduces the aggregate size of the
generated native object files by 66% (from 31G to 10G). It reduced
the time through the ThinLTO link and backend phases by about 20% on
my machine.

Reviewers: mehdi_amini, dblaikie, aprantl

Subscribers: llvm-commits

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

llvm-svn: 289993
2016-12-16 21:25:01 +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 composite types as declarations 2016-12-16 21:25:01 +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] Import composite types as declarations 2016-12-16 21:25:01 +00:00
UpdateCompilerUsed.cpp Utility functions for appending to llvm.used/llvm.compiler.used. 2016-10-25 23:53:31 +00:00