HomePhabricator

Dramatically improves C++ demangling performance by introducing a new…

Description

Dramatically improves C++ demangling performance by introducing a new implementation that is much faster than the existing demangler. While not yet complete, the new demangler will fail gracefully when it encounters symbols it isn’t prepared to deal with. In these cases LLDB will fall back to using the full demangler to prevent a loss in functionality. On sizable code bases the fast path succeeds 95% of the time, providing a significant net win.

The new implementation is located in source/Core/FastDemangle.cpp. It’s fairly straightforward C code with a few basic C++ extensions. It should compile with little or no change on a variety of platforms, but of course it is still only useful for symbols that comply with the Itanium ABI mangling spec (plus a few Clang extensions.)

rdar://problem/15397553 rdar://problem/15794867

Details

Committed
kateJul 22 2014, 10:03 AM
Parents
rL213670: Make use of the align parameter attribute for all pointer arguments
Branches
Unknown
Tags
Unknown

Event Timeline