llvm-project/llvm/lib
Dehao Chen 74f3e0d426 Using address range map to speedup finding inline stack for address.
Summary:
In the current implementation, to find inline stack for an address incurs expensive linear search in 2 places:

* linear search for the top-level DIE
* recursive linear traverse the DIE tree to find the path to the leaf DIE

In this patch, a map is built from address to its corresponding leaf DIE. The inline stack is built by traversing from the leaf DIE up to the root DIE. This speeds up batch symbolization by ~10X without noticible memory overhead.

Reviewers: dblaikie

Reviewed By: dblaikie

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32177

llvm-svn: 300697
2017-04-19 14:50:57 +00:00
..
Analysis [InstSimplify] Deduce correct type for vector GEP. 2017-04-19 14:23:42 +00:00
AsmParser [IR] Take func, ret, and arg attrs separately in AttributeList::get 2017-04-13 00:58:09 +00:00
Bitcode PR32382: Fix emitting complex DWARF expressions. 2017-04-18 01:21:53 +00:00
CodeGen [DAG] Loop over remaining candidates on successful merge of stores of 2017-04-19 13:52:38 +00:00
DebugInfo Using address range map to speedup finding inline stack for address. 2017-04-19 14:50:57 +00:00
Demangle Add support for demangling C++11 thread_local variables. 2017-01-31 15:56:36 +00:00
ExecutionEngine [APInt] Use lshrInPlace to replace lshr where possible 2017-04-18 17:14:21 +00:00
Fuzzer [libFuzzer] update -help: mention -exact_artifact_path in help for -minimize_crash and -cleanse_crash 2017-04-19 01:22:04 +00:00
IR Remove buggy 'addAttributes(unsigned, AttrBuilder)' overload 2017-04-19 01:51:13 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LTO Object, LTO: Add target triple to irsymtab and LTO API. 2017-04-14 02:55:06 +00:00
LibDriver Fix some ArgList uses after API change in r300135. 2017-04-12 23:43:58 +00:00
LineEditor
Linker [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
MC Distinguish between code pointer size and DataLayout::getPointerSize() in DWARF info generation 2017-04-17 17:41:25 +00:00
Object Object: Shrink the size of irsymtab::Symbol by a word. NFCI. 2017-04-17 23:43:49 +00:00
ObjectYAML Add virtual destructor to WasmYAML::Section or avoid memory leak 2017-03-31 22:14:14 +00:00
Option ArgList: cache index ranges containing arguments with each ID 2017-04-12 23:19:51 +00:00
Passes MemorySSA: Move to Analysis, from Transforms/Utils. It's used as 2017-04-11 20:06:36 +00:00
ProfileData [ProfileData] Unify getInstrProf*SectionName helpers 2017-04-15 00:09:57 +00:00
Support [GlobalISel] Support vector-of-pointers in LLT 2017-04-19 07:23:57 +00:00
TableGen Use print() instead of dump() in code 2017-01-28 02:47:46 +00:00
Target [GlobalIsel][X86] support G_TRUNC selection. 2017-04-19 11:34:59 +00:00
Transforms Revert r300657 due to crashes in stage2 of bootstraps: 2017-04-19 06:23:20 +00:00
XRay [XRay] - Fix spelling error to test commit access. 2017-04-06 03:32:01 +00:00
CMakeLists.txt [XRay] Define the library for XRay trace logs 2017-01-11 06:39:09 +00:00
LLVMBuild.txt