llvm-project/llvm
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
..
bindings Remove autoconf support 2016-01-26 21:29:08 +00:00
cmake Disable MSVC 2015's warning about zero extending after ~ and others 2016-02-10 19:25:51 +00:00
docs Add -match-full-lines argument to FileCheck. 2016-02-11 16:46:09 +00:00
examples Remove autoconf support 2016-01-26 21:29:08 +00:00
include DwarfDebug: emit type units immediately. 2016-02-11 19:57:46 +00:00
lib DwarfDebug: emit type units immediately. 2016-02-11 19:57:46 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test [codeview] Add test intended for r260571 2016-02-11 19:44:26 +00:00
tools [CMake] Produce an empty library for GlobalISel when not building it. 2016-02-11 19:18:27 +00:00
unittests [lanai] Add Lanai triple. 2016-02-11 17:16:20 +00:00
utils Add -match-full-lines argument to FileCheck. 2016-02-11 16:46:09 +00:00
.arcconfig
.clang-format
.clang-tidy adding readability-identifier-naming to llvm clang-tidy configuration. 2015-12-08 17:44:51 +00:00
.gitignore
CMakeLists.txt [CMake] Add a macro definition to detect if we are building GlobalISel: 2016-02-10 23:00:57 +00:00
CODE_OWNERS.TXT [docs] Remove references to autotools build. 2016-01-30 01:10:15 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt Revert previous test commit. 2016-01-04 19:13:29 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.