llvm-project/lldb
Jim Ingham 33722848fc Use a SmallPtrSet rather than a SmallVector in ClusterManager.
The m_objects store in this class is only used to check whether
this ClusterManager already owns this pointer.  With a SmallVector
the is_contained call was non-linear in number of children, and for
instance printing all the elements of a 16M element std::vector
didn't complete in the time I was willing to wait for it (hours).

Since we are only doing insert & contains, some kind of set is a
better data structure.  In this patch I used SmallPtrSet.  With
that, the same array prints out in 30 seconds.  I also tried a
std::unordered_set but that was slightly slower and used a fair bit
more memory.

Other than performance, this is NFC.

Differential Revision: https://reviews.llvm.org/D131996
2022-08-18 09:34:28 -07:00
..
bindings [lldb] Remove uses of six module (NFC) 2022-08-11 19:06:15 -07:00
cmake lldb: Disable unittests if llvm_gtest target does not exist 2022-08-10 16:56:08 -07:00
docs [lldb] Fix formatting in python-reference.rst 2022-08-07 12:17:36 -06:00
examples [LLDB] Remove __future__ imports from examples 2022-08-15 09:04:25 +00:00
include/lldb Use a SmallPtrSet rather than a SmallVector in ClusterManager. 2022-08-18 09:34:28 -07:00
packages/Python/lldbsuite [lldb][ClangExpression] Add asm() label to all FunctionDecls we create from DWARF 2022-08-17 09:02:43 +01:00
resources
scripts
source [LLDB][NFC] Suppress spurious static inspection warnings 2022-08-17 16:12:42 -07:00
test [LLDB][NativePDB] Switch to use DWARFLocationList. 2022-08-17 13:37:13 -07:00
third_party/Python/module [lldb] Remove uses of six module (NFC) 2022-08-11 19:06:15 -07:00
tools [LLDB][NFC] Suppress spurious static inspection warnings 2022-08-17 16:12:42 -07:00
unittests [lldb] Automatically unwrap parameter packs in template argument accessors 2022-08-16 18:10:14 -07:00
utils [lldb] Refactor command option enum values (NFC) 2022-07-14 21:18:07 -07:00
.clang-format
.clang-tidy [LLDB] Applying clang-tidy modernize-use-override over LLDB 2022-04-22 13:29:47 -07:00
.gitignore
CMakeLists.txt lldb: Disable unittests if llvm_gtest target does not exist 2022-08-10 16:56:08 -07:00
CODE_OWNERS.txt [CODE OWNERS] Add wallace as code owner 2022-01-12 12:36:30 -08:00
LICENSE.TXT
use_lldb_suite_root.py