[Lldb-commits] [PATCH] D122974: prevent ConstString from calling djbHash() more than once
Luboš Luňák via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Sat Apr 2 05:46:38 PDT 2022
llunak created this revision.
llunak added reviewers: clayborg, chandlerc.
Herald added subscribers: dexonsmith, hiraditya.
Herald added a project: All.
llunak requested review of this revision.
Herald added projects: LLDB, LLVM.
Herald added subscribers: llvm-commits, lldb-commits.
Pool::GetConstCStringWithStringRef() may call djbHash() up to 3 times for the same string: First from Pool::hash() when deciding which StringMap in the pool to use, then from read-locked StringMap::find() and then possibly from StringMap::insert() if insertion is needed.
If LLDB's index cache is enabled and everything is cached, calls to djbHash() are ~30% of the total CPU time here when I profile lldb start. Modifying StringMap to allow explicitly passing in a precomputed hash and calling djbHash() just once reduces startup CPU time by ~19%.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D122974
Files:
lldb/source/Utility/ConstString.cpp
llvm/include/llvm/ADT/StringMap.h
llvm/lib/Support/StringMap.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D122974.419971.patch
Type: text/x-patch
Size: 8077 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20220402/8537e6c5/attachment.bin>
More information about the lldb-commits
mailing list