HomePhabricator

Speed up accelerator table lookups

Description

Speed up accelerator table lookups

When debugging a large program like clang and doing "frame variable
*this", the ValueObject pretty printer is doing hundreds of scoped
FindTypes lookups. The ones that take longest are the ones where the
DWARFDeclContext ends in something like ::Iterator which produces many
false positives that need to be filtered out *after* extracting the
DIEs. This patch demonstrates a way to filter out false positives at
the accerator table lookup step.

With this patch

lldb clang-10 -o "b EmitFunctionStart" -o r -o "f 2" -o "fr v *this" -b -- ...

goes (in user time) from 5.6s -> 4.8s
or (in wall clock) from 6.9s -> 6.0s.

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

Details

Committed
adrianOct 10 2019, 10:59 AM
Differential Revision
D68678: Speed up accelerator table lookups
Parents
rL374400: [lit] Move argument parsing/validation to separate file
Branches
Unknown
Tags
Unknown