[PATCH] D102707: Fix non-global-value-max-name-size not considered by LLParser

Dimitry Andric via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 25 08:56:34 PST 2022


dim added a comment.

The top 10 list from `perf report` output shows that it's doing quite a lot of StringMapImpl work:

  Samples: 154K of event 'cycles', Event count (approx.): 175175930341
  Overhead  Command  Shared Object        Symbol
      22.50%  clang++  clang-14             [.] llvm::StringMapImpl::LookupBucketFor
      17.64%  clang++  libc-2.31.so         [.] __memmove_avx_unaligned_erms
      15.72%  clang++  clang-14             [.] llvm::StringMapImpl::RemoveKey
       3.94%  clang++  [kernel.kallsyms]    [k] prepare_exit_to_usermode
       3.29%  clang++  [kernel.kallsyms]    [k] clear_page_erms
       2.63%  clang++  libc-2.31.so         [.] __memchr_avx2
       2.07%  clang++  [kernel.kallsyms]    [k] native_irq_return_iret
       1.69%  clang++  [kernel.kallsyms]    [k] rmqueue
       1.64%  clang++  [kernel.kallsyms]    [k] sync_regs
       1.56%  clang++  [kernel.kallsyms]    [k] error_entry
       1.55%  clang++  [kernel.kallsyms]    [k] swapgs_restore_regs_and_return_to_usermode
       1.20%  clang++  libc-2.31.so         [.] __memcmp_avx2_movbe
       0.76%  clang++  [kernel.kallsyms]    [k] zap_pte_range.isra.0
       0.74%  clang++  [kernel.kallsyms]    [k] free_pcppages_bulk

My guess is that due to the `Name = Name.substr(0, std::max(1u, (unsigned)MaxNameSize));` in `createValueName`, a great many temporary StringRefs are created and destroyed?

The creduce run is almost finished, I'll go create a ticket now.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D102707/new/

https://reviews.llvm.org/D102707



More information about the llvm-commits mailing list