OVERVIEW: llvm SPGO profile generator USAGE: llvm-profgen [options] OPTIONS: Color Options: --color - Use colors in output (default=autodetect) Generic Options: --help - Display available options (--help-hidden for more) --help-list - Display list of available options (--help-list-hidden for more) --version - Display the version of this program ProfGen Options: --binary= - Path of profiled executable binary. --csprof-max-cold-context-depth= - Keep the last K contexts while merging cold profile. 1 means the context-less base profile --csprof-max-context-depth= - Keep the last K contexts while merging profile. -1 means no depth limit. --csprof-max-unsymbolized-context-depth= - Keep the last K contexts while merging unsymbolized profile. -1 means no depth limit. --csprof-merge-cold-context - If the total count of context profile is smaller than the threshold, it will be merged into context-less base profile. --data-access-perftrace= - File path of a Linux perf raw trace (generated by `perf report -D`) consisting of memory access events. --debug-binary= - Path of debug info binary, llvm-profgen will load the DWARF info from it instead of the executable binary. --disassemble-functions= - List of functions to print disassembly for. Accept demangled names only. Only work with show-disassembly-only --dwp= - Path of .dwp file. When not specified, it will be .dwp in the same directory as the main binary. --etm= - Path of raw ETM trace file --etm-trace-id= - CoreSight Trace ID (CSID) used to route ETM trace data. --format= - Format of output profile =binary - Binary encoding (default) =extbinary - Extensible binary encoding =text - Text encoding =gcc - GCC encoding (only meaningful for -sample) --ignore-stack-samples - Ignore call stack samples for hybrid samples and produce context-insensitive profile. --infer-missing-frames - Infer missing call frames due to compiler tail call elimination. --kernel - Generate the profile for Linux kernel binary. --llvm-sample-profile= - Path of the LLVM sample profile. Cannot be used with--perfscript, --perfdata, or --unsymbolized-profile --load-function-from-symbol - Gather additional binary function info from symbols (e.g. symtab) in case dwarf info is incomplete. --max-search-depth= - The maximum levels the DFS-based missing frame search should go with --output= - Output profile file --perfdata= - Path of raw perf data created by Linux perf tool (it should be profiled with -b). Cannot be used with --perfscript, --unsymbolized-profile, or --llvm-sample-profile. --perfscript= - Path of perf-script trace created by Linux perf tool with `script` command(the raw perf.data should be profiled with -b). Cannot be used with --perfdata, --unsymbolized-profile, or --llvm-sample-profile. --pid= - Process Id for the profiled executable binary. --profile-density-cutoff-hot= - Total samples cutoff for functions used to calculate profile density. --profile-density-threshold= - If the profile density is below the given threshold, it will be suggested to increase the sampling rate. --show-canonical-fname - Print canonical function name. --show-density - show profile density details --show-detailed-warning - Show detailed warning message. --show-disassembly-only - Print disassembled code. --show-mmap-events - Print binary load events. --show-pseudo-probe - Print pseudo probe section and disassembled info. --show-source-locations - Print source locations. --skip-symbolization - Dump the unsymbolized profile to the output file. It will show unwinder output for CS profile generation. --target-triple= - Override the target triple for the binary --time-profgen - Time llvm-profgen phases --trim-cold-profile - If the total count of the profile is smaller than threshold, it will be trimmed. --unsymbolized-profile= - Path of the unsymbolized profile created by `llvm-profgen` with `--skip-symbolization`. Cannot be used with --perfscript, --perfdata, or --llvm-sample-profile. --update-total-samples - Update total samples by accumulating all its body samples. --use-dwarf-correlation - Use dwarf for profile correlation even when binary contains pseudo probe. --use-first-loadable-segment-as-base - Use first loadable segment address as base address for offsets in unsymbolized profile. By default first executable segment address is used --use-offset - Work with `--skip-symbolization` or `--unsymbolized-profile` to write/read the offset instead of virtual address.