diff options
author | Teresa Johnson <tejohnson@google.com> | 2025-01-29 10:38:31 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-29 10:38:31 -0800 |
commit | ae6d5dd58bcae9ced3b3c5b058876d3564017337 (patch) | |
tree | 856e42e062c019e92f24a0d77b8b0bf7230ca6e6 /llvm/lib/Object/ELFObjectFile.cpp | |
parent | bda19768de03a0322c4094c8d0e00ad033268309 (diff) | |
download | llvm-ae6d5dd58bcae9ced3b3c5b058876d3564017337.zip llvm-ae6d5dd58bcae9ced3b3c5b058876d3564017337.tar.gz llvm-ae6d5dd58bcae9ced3b3c5b058876d3564017337.tar.bz2 |
[MemProf] Prune unneeded non-cold contexts (#124823)
We can take advantage of the fact that we subsequently only clone cold
allocation contexts, since not cold behavior is the default, and
significantly reduce the amount of metadata (and later ThinLTO summary
and MemProfContextDisambiguation graph nodes) by pruning unnecessary not
cold contexts when building metadata from the trie.
Specifically, we only need to keep notcold contexts that overlap the
longest with cold allocations, to know how deeply to clone those
contexts to expose the cold allocation behavior.
For a large target this reduced ThinLTO bitcode object sizes by about
35%. It reduced the ThinLTO indexing time by about half and the peak
ThinLTO indexing memory by about 20%.
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions