llvm-project/llvm/test/tools/llvm-profgen
Hongtao Yu 3f97016857 [llvm-profgen] Decoding pseudo probe for profiled function only.
Complete pseudo probes decoding can result in large memory usage. In practice only a small porting of the decoded probes are used in profile generation. I'm changing the full decoding mode to be decoding for profiled functions only, though we still do a full scan of the .pseudoprobe section due to a missing table-of-content but we don't have to build the in-memory data structure for functions not sampled.

To build the in-memory data structure for profiled functions only, I'm rewriting the previous non-recursive probe decoding logic to be recursive. This is easy to read and maintain.

I also have to change the previous representation of unsymbolized context from probe-based stack to address-based stack since the profiled functions are unknown yet by the time of virtual unwinding. The address-based stack will be converted to probe-based stack after virtual unwinding and on-demand probe decoding.

I'm seeing 20GB memory is saved for one of our internal large service.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D121643
2022-03-23 14:15:11 -07:00
..
Inputs [llvm-profgen] Support symbol loading for debug fission 2022-02-23 09:40:46 -08:00
callback-external-addr.test [CSSPGO][llvm-profgen] Fix external address issues of perf reader (return to external addr part) 2021-12-14 16:40:54 -08:00
cold-profile-trimming.test [llvm-profgen] Fix total samples related issues 2021-12-08 12:33:41 -08:00
coroutine.test [llvm-profgen] Fix total samples related issues 2021-12-08 12:33:41 -08:00
cs-extbinary.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
cs-external-address.test [CSSPGO][llvm-profgen] Fix external address issues of perf reader (leading external LBR part) 2021-12-14 16:40:53 -08:00
cs-interrupt.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
cs-invalid-ret-addr.test
cs-preinline-cost.test
cs-preinline.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
disassemble.test
fname-canonicalization.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
fs-discriminator.test [llvm-profgen] Fix total samples related issues 2021-12-08 12:33:41 -08:00
func-split.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
help.test
inline-cs-noprobe.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
inline-cs-pseudoprobe.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
inline-force-dwarf.test [llvm-profgen] Fix total samples related issues 2021-12-08 12:33:41 -08:00
inline-noprobe.test [llvm-profgen] Fix total samples related issues 2021-12-08 12:33:41 -08:00
inline-noprobe2.test [CSSPGO][llvm-profgen] Fix external address issues of perf reader (return to external addr part) 2021-12-14 16:40:54 -08:00
inline-pseudoprobe.test [llvm-profgen] Generating probe-based non-CS profile. 2022-03-01 18:49:08 -08:00
invalid-perfscript.test
lit.local.cfg
merge-cold-profile.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
mmapEvent.test
multi-load-segs.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
noinline-cs-noprobe.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
noinline-cs-pseudoprobe.test [llvm-profgen] Decoding pseudo probe for profiled function only. 2022-03-23 14:15:11 -07:00
noinline-noprobe.test [llvm-profgen] Fix total samples related issues 2021-12-08 12:33:41 -08:00
noinline-pseudoprobe.test [llvm-profgen] Generating probe-based non-CS profile. 2022-03-01 18:49:08 -08:00
profile-density.test [llvm-profgen] Fix total samples related issues 2021-12-08 12:33:41 -08:00
pseudoprobe-decoding.test
recursion-compression-noprobe.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
recursion-compression-pseudoprobe.test [llvm-profgen] Decoding pseudo probe for profiled function only. 2022-03-23 14:15:11 -07:00
separate-debuginfo-binary.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00
split-dwarf.test [llvm-profgen] Support symbol loading for debug fission 2022-02-23 09:40:46 -08:00
symbolize.test
truncated-pseudoprobe.test [llvm-profgen] Turn on CS nested profile generation by default for CSSPGO. 2022-03-08 09:05:27 -08:00