llvm-profgen - LLVM SPGO profile generation tool#
SYNOPSIS#
llvm-profgen [commands] [options]
DESCRIPTION#
The llvm-profgen utility generates a profile data file from given perf script data files for sample-based profile guided optimization(SPGO).
COMMANDS#
At least one of the following commands are required:
- --perfscript=<string[,string,...]>#
Path of a trace created by the Linux
perf scriptcommand. For LBR or BRBE input, the raw perf data must contain branch stacks, for example from recording with-b.
- --etm=<string>#
Path of the ETM trace file created by ARM CoreSight trace tools. Requires the OpenCSD library version 1.5.4 or higher to be enabled during the build.
- --perfdata=<perfdata>, --pd#
Path of raw perf data created by the Linux perf tool. For LBR or BRBE input, it must contain branch stacks, for example from recording with
-b.
- --unsymbolized-profile=<unsymbolized profile>, --up#
Path of the unsymbolized profile created by
llvm-profgenwith--skip-symbolization.
- --llvm-sample-profile=<llvm sample profile>#
Path of the LLVM sample profile.
Note
Only one of --perfscript, --perfdata, --unsymbolized-profile,
--llvm-sample-profile, or --etm may be specified at a time.
- --binary=<string[,string,...]>#
Path of the input profiled binary files.
- --output=<string>#
Path of the output profile file.
OPTIONS#
llvm-profgen supports the following options:
- --format=[text|binary|extbinary|compbinary|gcc]#
Specify the format of the generated profile. Supported <format> are
text,binary,extbinary,compbinary,gcc, seellvm-profdatafor more descriptions of the format.
- --show-mmap-events#
Print mmap events.
- --warn-not-symbolized#
Warn when an address covered by a recorded mmap range cannot be symbolized.
- --show-disassembly#
Print disassembled code.
- --x86-asm-syntax=[att|intel]#
Specify whether to print assembly code in AT&T syntax (the default) or Intel syntax.
- --debug-binary=<debug-binary>#
Path of debug info binary.
llvm-profgenwill load the DWARF info from it instead of the executable binary.
- --target-triple=<triple>#
Override the target triple for the binary. This is useful for ETM trace decoding to specify the correct Arm M-profile target.
- --pid#
Process Id for the profiled executable binary.
- --output=<output>#
Path of the output profile file.
- --data-access-perftrace=<data-access-perftrace>#
File path of a Linux perf raw trace (generated by
perf report -D) consisting of memory access events.