llvm/lib/LTO
Teresa Johnson f638013746 [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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289993 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-16 21:25:01 +00:00
..
Caching.cpp Add qualification to fix MSVC build. 2016-09-23 23:23:23 +00:00
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +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