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= 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=, --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=, --up Path of the unsymbolized profile created by llvm-profgen with --skip-symbolization. :::

:::{option} --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= 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= Path of debug info binary. llvm-profgen will load the DWARF info from it instead of the executable binary. :::

:::{option} --target-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= Path of the output profile file. :::

:::{option} --data-access-perftrace= File path of a Linux perf raw trace (generated by perf report -D) consisting of memory access events. :::