llvm/test
Duncan P. N. Exon Smith 7838051bda DwarfDebug: Emit number of bytes in .debug_loc entry directly
Emit the number of bytes in a `.debug_loc` entry directly.  The old code
created temp labels (expensive), emitted the difference between them,
and then emitted one on each side of the relevant bytes.

(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`
(the optimized version of ld64's `-save-temps` when linking the
`verify-uselistorder` executable in an LTO bootstrap).  I've hacked
`MCContext::Allocate()` to just call `malloc()` instead of using the
`BumpPtrAllocator` so that the heap profile is easier to read.  As far
as peak memory is concerned, `MCContext::Allocate()` is equivalent to a
leak, since it only gets freed at process teardown.

In my heap profile, this patch drops memory usage of
`DwarfDebug::emitDebugLoc()` from 132.56 MB (11.4%) down to 29.86 MB
(2.7%) at peak memory.  Some of that must be noise from `SmallVector`
(or other) allocations -- peak memory only dropped from 1160 MB down to
1100 MB -- but this nevertheless shaves 5% off the top.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236629 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-06 19:11:20 +00:00
..
Analysis [getUnderlyingOjbects] Analyze loop PHIs further to remove false positives 2015-04-23 20:09:20 +00:00
Assembler IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Bindings IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Bitcode Don't overflow GCTable 2015-04-30 04:09:41 +00:00
BugPoint IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
CodeGen DwarfDebug: Emit number of bytes in .debug_loc entry directly 2015-05-06 19:11:20 +00:00
DebugInfo DwarfDebug: Emit number of bytes in .debug_loc entry directly 2015-05-06 19:11:20 +00:00
ExecutionEngine [Orc] Reapply r236465 with fixes for the MSVC bots. 2015-05-05 17:37:18 +00:00
Feature
FileCheck
Instrumentation IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Integer
JitListener IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
Linker IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
LTO Revert changes to LTO test case since llvm-lto can't handle textual IR inputs 2015-04-24 18:13:27 +00:00
MC [SystemZ] Add z13 vector facility and MC support 2015-05-05 19:23:40 +00:00
Object [Object] Teach Object and llvm-objdump about ".hidden" 2015-04-30 23:08:53 +00:00
Other
SymbolRewriter
TableGen
tools [llvm-pdbdump] Support dynamic load address and external symbols. 2015-05-01 20:24:26 +00:00
Transforms Allow 0-weight branches in BranchProbabilityInfo. 2015-05-06 17:55:11 +00:00
Unit
Verifier IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg Lit: Allow overriding llvm tool paths+arguments, make -D an alias for --param 2015-05-04 21:36:36 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh