llvm-project/llvm/lib/Object
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
..
Archive.cpp Make the Error class constructor protected 2016-11-11 04:28:40 +00:00
ArchiveWriter.cpp Only computeRelativePath() on new members 2016-11-30 22:32:58 +00:00
Binary.cpp [WebAssembly] Add llvm-objdump support for wasm file format 2016-11-30 16:49:11 +00:00
CMakeLists.txt Object: Extract a ModuleSymbolTable class from IRObjectFile. 2016-12-01 06:51:47 +00:00
COFFObjectFile.cpp Object: Make SymbolicFile::symbol_{begin,end}() virtual and remove unnecessary wrappers. 2016-11-22 03:38:40 +00:00
ELF.cpp [RISCV] Add RISC-V ELF defines 2016-11-01 16:59:37 +00:00
ELFObjectFile.cpp [llvm-objdump] Support detection of feature bits from the object and implement this for Mips. 2016-06-16 09:17:03 +00:00
Error.cpp Make the Error class constructor protected 2016-11-11 04:28:40 +00:00
IRObjectFile.cpp [ThinLTO] Import composite types as declarations 2016-12-16 21:25:01 +00:00
LLVMBuild.txt
MachOObjectFile.cpp [Object][MachO] Reference-ify some helper function arguments. NFC. 2016-12-04 01:56:10 +00:00
MachOUniversal.cpp Add error checking for Mach-O universal files. 2016-11-28 22:40:50 +00:00
ModuleSummaryIndexObjectFile.cpp Fix -Wpessimizing-move warning. 2016-11-11 20:39:02 +00:00
ModuleSymbolTable.cpp Object: Set SF_Indirect in ModuleSymbolTable. 2016-12-01 07:00:35 +00:00
Object.cpp Thread Expected<...> up from libObject’s getSymbolAddress() for symbols to allow 2016-06-24 18:24:42 +00:00
ObjectFile.cpp [WebAssembly] Add llvm-objdump support for wasm file format 2016-11-30 16:49:11 +00:00
RecordStreamer.cpp [IRObjectFile] Handle undefined weak symbols in RecordStreamer. 2016-09-15 17:54:22 +00:00
RecordStreamer.h [IRObjectFile] Handle undefined weak symbols in RecordStreamer. 2016-09-15 17:54:22 +00:00
SymbolSize.cpp Fix llvm-symbolizer to correctly sort a symbol array and calculate symbol sizes 2016-11-15 21:07:03 +00:00
SymbolicFile.cpp [WebAssembly] Add llvm-objdump support for wasm file format 2016-11-30 16:49:11 +00:00
WasmObjectFile.cpp Remove iostream include from WasmObjectFile 2016-12-01 15:20:34 +00:00