[all-commits] [llvm/llvm-project] d4e6e4: Improve debug names index fetching global variable...

jeffreytan81 via All-commits all-commits at lists.llvm.org
Wed Oct 25 11:46:25 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d4e6e403372fbc62f032d85f22fe0c1aeeb15146
      https://github.com/llvm/llvm-project/commit/d4e6e403372fbc62f032d85f22fe0c1aeeb15146
  Author: jeffreytan81 <jeffreytan at meta.com>
  Date:   2023-10-25 (Wed, 25 Oct 2023)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp

  Log Message:
  -----------
  Improve debug names index fetching global variables performance (#70231)

While using dwarf5 `.debug_names` in internal large targets, we noticed
a performance issue (around 10 seconds delay) while `lldb-vscode` tries
to show `scopes` for a compile unit. Profiling shows the bottleneck is
inside `DebugNamesDWARFIndex::GetGlobalVariables` which linearly search
all index entries belongs to a compile unit.

This patch improves the performance by using the compile units list to
filter first before checking index entries. This significantly improves
the performance (drops from 10 seconds => under 1 second) in the split
dwarf situation because each compile unit has its own named index.

---------

Co-authored-by: jeffreytan81 <jeffreytan at fb.com>




More information about the All-commits mailing list