| 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 perf-script trace created by Linux perf tool with `script` | |
| command(the raw perf.data should be profiled 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 Linux perf tool (it should be profiled | |
| 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:: --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. | |