[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