aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ELFObjectFile.cpp
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2025-01-29 10:38:31 -0800
committerGitHub <noreply@github.com>2025-01-29 10:38:31 -0800
commitae6d5dd58bcae9ced3b3c5b058876d3564017337 (patch)
tree856e42e062c019e92f24a0d77b8b0bf7230ca6e6 /llvm/lib/Object/ELFObjectFile.cpp
parentbda19768de03a0322c4094c8d0e00ad033268309 (diff)
downloadllvm-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