Go to file
Adrian Prantl 7509d54b21 PR26055: Speed up LiveDebugValues::transferDebugValue()
This patch builds upon r270776 and speeds up
LiveDebugValues::transferDebugValue() by adding an index that maps each
DebugVariable to its open VarLoc.

The transferDebugValue() function needs to close all open ranges for a
given DebugVariable. Iterating over the set bits of OpenRanges is
prohibitively slow in practice. I experimented with using the sorted map
of VarLocs in the UniqueVector to iterate only over the range of VarLocs
with a given DebugVariable, but the binary search turned out to be even
more expensive than just iterating over the set bits in OpenRanges.
Instead, this patch exploits the fact that there can only be one open
location for each DebugVariable and redundantly stores this location in a
DenseMap.

This patch brings the time spent in the LiveDebugValues pass down to an
almost neglectiable amount.

http://llvm.org/bugs/show_bug.cgi?id=26055
http://reviews.llvm.org/D20636
rdar://problem/24091200

llvm-svn: 270923
2016-05-26 21:42:47 +00:00
clang Produce better pretty stack traces from crashes in template instantiation: add 2016-05-26 20:23:13 +00:00
clang-tools-extra clang-tools-extra/test/clang-tidy/cppcoreguidelines-pro-type-vararg.cpp: Tweak for r270775. 2016-05-26 11:20:54 +00:00
compiler-rt Add segment prefix for darwin 2016-05-26 17:21:24 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc math: Use single precision fmax in sp path 2016-05-17 19:44:01 +00:00
libcxx [libcxx] Allow explicit pthread opt-in 2016-05-25 17:40:09 +00:00
libcxxabi libc++abi: build with -fvisibility=hidden 2016-05-26 02:12:20 +00:00
libunwind Introduce a native-only unwinder build. 2016-05-25 12:36:34 +00:00
lld [ELF][MIPS] Handle section symbol points to the .MIPS.options / .reginfo section 2016-05-26 20:46:01 +00:00
lldb Make sure that we succeed in starting a definition before we complete it and emit an error if we fail to start the definition. 2016-05-26 19:24:02 +00:00
llgo [llgo] llgoi: separate evaluation from printing 2016-04-25 01:18:20 +00:00
llvm PR26055: Speed up LiveDebugValues::transferDebugValue() 2016-05-26 21:42:47 +00:00
openmp Fix for OMP_PROC_BIND=spread strategy 2016-05-26 19:09:46 +00:00
polly [ScopInfo] Remove unused typedef OutgoingValueMapTy. NFC. 2016-05-23 14:51:52 +00:00