blob: 631a3e00f3ce2633363c119a14864a90b17e4e8b [file] [view] [edit]
# llvm-profgen - LLVM SPGO profile generation tool
:::{program} llvm-profgen
:::
## SYNOPSIS
{program}`llvm-profgen` \[*commands*\] \[*options*\]
## DESCRIPTION
The {program}`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:
:::{option} --perfscript=<string[,string,...]>
Path of a trace created by the Linux `perf script` command. For LBR or BRBE
input, the raw perf data must contain branch stacks, for example from recording
with `-b`.
:::
:::{option} --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.
:::
:::{option} --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`.
:::
:::{option} --unsymbolized-profile=<unsymbolized profile>, --up
Path of the unsymbolized profile created by `llvm-profgen` with
`--skip-symbolization`.
:::
:::{option} --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.
:::
:::{option} --binary=<string[,string,...]>
Path of the input profiled binary files.
:::
:::{option} --output=<string>
Path of the output profile file.
:::
## OPTIONS
{program}`llvm-profgen` supports the following options:
:::{option} --format=[text|binary|extbinary|compbinary|gcc]
Specify the format of the generated profile. Supported \<format> are `text`,
`binary`, `extbinary`, `compbinary`, `gcc`, see `llvm-profdata` for more
descriptions of the format.
:::
:::{option} --show-mmap-events
Print mmap events.
:::
:::{option} --warn-not-symbolized
Warn when an address covered by a recorded mmap range cannot be symbolized.
:::
:::{option} --show-disassembly
Print disassembled code.
:::
:::{option} --x86-asm-syntax=[att|intel]
Specify whether to print assembly code in AT&T syntax (the default) or Intel
syntax.
:::
:::{option} --debug-binary=<debug-binary>
Path of debug info binary. `llvm-profgen` will load the DWARF info from
it instead of the executable binary.
:::
:::{option} --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.
:::
:::{option} --pid
Process Id for the profiled executable binary.
:::
:::{option} --output=<output>
Path of the output profile file.
:::
:::{option} --data-access-perftrace=<data-access-perftrace>
File path of a Linux perf raw trace (generated by `perf report -D`)
consisting of memory access events.
:::