llvm-project/llvm/lib
Peter Collingbourne 7c384ccea2 DwarfDebug: emit type units immediately.
Rather than storing type units in a vector and emitting them at the end
of code generation, emit them immediately and destroy them, reclaiming the
memory we were using for their DIEs.

In one benchmark carried out against Chromium's 50 largest (by bitcode
file size) translation units, total peak memory consumption with type units
decreased by median 17%, or by 7% when compared against disabling type units.

Tested using check-{llvm,clang}, the GDB 7.5 test suite (with
'-fdebug-types-section') and by eyeballing llvm-dwarfdump output on those
Chromium translation units with split DWARF both disabled and enabled, and
verifying that the only changes were to addresses and abbreviation ordering.

Differential Revision: http://reviews.llvm.org/D17118

llvm-svn: 260578
2016-02-11 19:57:46 +00:00
..
Analysis Make context-sensitive isDereferenceable queries in isSafeToLoadUnconditionally 2016-02-11 13:42:59 +00:00
AsmParser Remove autoconf support 2016-01-26 21:29:08 +00:00
Bitcode Restore "[ThinLTO] Use MD5 hash in function index." with fix 2016-02-10 21:55:02 +00:00
CodeGen DwarfDebug: emit type units immediately. 2016-02-11 19:57:46 +00:00
DebugInfo [DebugInfo] Eliminate compilation warning about used variable LSDA 2016-02-05 09:24:34 +00:00
ExecutionEngine [Orc] Add lazy-JITting support for i386. 2016-02-10 01:02:33 +00:00
Fuzzer [libFuzzer] hot fix a test 2016-02-04 00:12:28 +00:00
IR Add a new insert_as() method to DenseMap and use it for ConstantUniqueMap 2016-02-10 23:07:29 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LTO Move MCTargetAsmParser.h to llvm/MC/MCParser where it belongs. 2016-01-27 10:01:28 +00:00
LibDriver Remove autoconf support 2016-01-26 21:29:08 +00:00
LineEditor Remove autoconf support 2016-01-26 21:29:08 +00:00
Linker [ThinLTO] Move global processing from Linker to TransformUtils (NFC) 2016-02-10 18:11:31 +00:00
MC [MC] Fixed parsing of macro arguments where expressions with spaces are present. 2016-02-11 13:48:49 +00:00
Object Use copy initialization. 2016-02-11 19:54:18 +00:00
Option Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Passes Remove autoconf support 2016-01-26 21:29:08 +00:00
ProfileData [PGO] Make the number of records for each value site metada adjustable 2016-02-10 22:19:43 +00:00
Support [lanai] Add Lanai triple. 2016-02-11 17:16:20 +00:00
TableGen Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Target [AArch64] Trivial implementation of lower return for the IRTranslator. 2016-02-11 19:45:27 +00:00
Transforms Fixed typo in r260530 2016-02-11 16:46:13 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00