[all-commits] [llvm/llvm-project] 04ebd1: [MC][NFC] Statically allocate storage for decoded ...
Amir Ayupov via All-commits
all-commits at lists.llvm.org
Mon Aug 26 09:09:35 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 04ebd1907c0561831e4fcf2658e1f3614f8cdd77
https://github.com/llvm/llvm-project/commit/04ebd1907c0561831e4fcf2658e1f3614f8cdd77
Author: Amir Ayupov <aaupov at fb.com>
Date: 2024-08-26 (Mon, 26 Aug 2024)
Changed paths:
M bolt/lib/Rewrite/PseudoProbeRewriter.cpp
M llvm/include/llvm/MC/MCPseudoProbe.h
M llvm/lib/MC/MCPseudoProbe.cpp
M llvm/tools/llvm-profgen/ProfileGenerator.cpp
M llvm/tools/llvm-profgen/ProfiledBinary.cpp
Log Message:
-----------
[MC][NFC] Statically allocate storage for decoded pseudo probes and function records
Use #102774 to allocate storage for decoded probes (`PseudoProbeVec`)
and function records (`InlineTreeVec`).
Leverage that to also shrink sizes of `MCDecodedPseudoProbe`:
- Drop Guid since it's accessible via `InlineTree`.
`MCDecodedPseudoProbeInlineTree`:
- Keep track of probes and inlinees using `ArrayRef`s now that probes
and function records belonging to the same function are allocated
contiguously.
This reduces peak RSS from 13.7 GiB to 9.7 GiB and pseudo probe parsing
time (as part of perf2bolt) from 15.3s to 9.6s for a large binary with
400MiB .pseudo_probe section containing 43M probes and 25M function
records.
Depends on:
#102774
#102787
#102788
Reviewers: maksfb, rafaelauler, dcci, ayermolo, wlei-llvm
Reviewed By: wlei-llvm
Pull Request: https://github.com/llvm/llvm-project/pull/102789
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list