llvm-project/llvm/test/tools/llvm-profgen
Hongtao Yu 0712038458 [CSSPGO][llvm-profgen] Allow multiple executable load segments.
The linker or post-link optimizer can create an ELF image with multiple executable segments each of which will be loaded separately at run time. This breaks the assumption of llvm-profgen that currently only supports one base load address. What it ends up with is that the subsequent mmap events will be treated as an overwrite of the first mmap event which will in turn screw up address mapping. While it is non-trivial to support multiple separate load addresses and given that on x64 those segments will always be loaded at consecutive addresses (though via separate mmap
sys calls), I'm adding an error checking logic to bail out if that's violated and keep using a single load address which is the address of the first executable segment.

Also changing the disassembly output from printing section offset to printing the virtual address instead, which matches the behavior of objdump.

Differential Revision: https://reviews.llvm.org/D103178
2021-07-13 18:22:24 -07:00
..
Inputs [CSSPGO][llvm-profgen] Allow multiple executable load segments. 2021-07-13 18:22:24 -07:00
cs-extbinary.test [CSSPGO][llvm-profgen] Change default cold threshold for context merging 2021-05-25 10:41:10 -07:00
cs-interrupt.test [CSSPGO][llvm-profgen] Ignore LBR records after interrupt transition 2021-06-18 12:13:53 -07:00
cs-preinline.test [CSSPGO][llvm-profgen] Make extended binary the default output format 2021-06-03 17:58:16 -07:00
disassemble.test [CSSPGO][llvm-profgen] Allow multiple executable load segments. 2021-07-13 18:22:24 -07:00
fname-canonicalization.test [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
inline-cs-noprobe.test [CSSPGO][llvm-profgen] Make extended binary the default output format 2021-06-03 17:58:16 -07:00
inline-cs-pseudoprobe.test [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
invalid-perfscript.test [CSSPGO][llvm-profgen] Renovate perfscript check and command line input validation 2021-02-12 15:18:50 -08:00
lit.local.cfg [llvm-profgen] A couple tweaks to the testing harness. 2021-04-22 08:57:14 -07:00
merge-cold-profile.test [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
mmapEvent.test [CSSPGO][llvm-profgen] Allow multiple executable load segments. 2021-07-13 18:22:24 -07:00
multi-load-segs.test [CSSPGO][llvm-profgen] Allow multiple executable load segments. 2021-07-13 18:22:24 -07:00
noinline-cs-noprobe.test [CSSPGO][llvm-profgen] Make extended binary the default output format 2021-06-03 17:58:16 -07:00
noinline-cs-pseudoprobe.test [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
pseudoprobe-decoding.test [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
recursion-compression-noprobe.test [CSSPGO][llvm-profgen] Make extended binary the default output format 2021-06-03 17:58:16 -07:00
recursion-compression-pseudoprobe.test [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
symbolize.test [CSSPGO][llvm-profgen] Allow multiple executable load segments. 2021-07-13 18:22:24 -07:00
truncated-pseudoprobe.test [CSSPGO] Report zero-count probe in profile instead of dangling probes. 2021-06-16 11:45:29 -07:00