llvm-6502/lib
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 Allow 0-weight branches in BranchProbabilityInfo. 2015-05-06 17:55:11 +00:00
AsmParser
Bitcode
CodeGen DwarfDebug: Emit number of bytes in .debug_loc entry directly 2015-05-06 19:11:20 +00:00
DebugInfo
ExecutionEngine
Fuzzer
IR Add missing dereferenceable_or_null getters 2015-05-06 17:41:54 +00:00
IRReader
LineEditor
Linker
LTO
MC
Object
Option
Passes
ProfileData InstrProf: Strip filename prefixes from the names we display for coverage 2015-05-05 23:44:48 +00:00
Support
TableGen
Target [X86] Disable loop unrolling in loop vectorization pass when VF is 1. 2015-05-06 17:12:25 +00:00
Transforms Implement createSanitizerCtor, common helper function for all sanitizers 2015-05-06 18:48:22 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile