.\" Man page generated from reStructuredText .\" by the Docutils 0.22.4 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "LLVM-PROFGEN" "1" "2026-07-28" "15" "LLVM" .SH NAME llvm-profgen \- LLVM SPGO profile generation tool .SH SYNOPSIS .sp \fBllvm\-profgen\fP [\fIcommands\fP] [\fIoptions\fP] .SH DESCRIPTION .sp The \fBllvm\-profgen\fP utility generates a profile data file from given perf script data files for sample\-based profile guided optimization(SPGO). .SH COMMANDS .sp At least one of the following commands are required: .INDENT 0.0 .TP .B \-\-perfscript= Path of perf\-script trace created by Linux perf tool with \fIscript\fP command(the raw perf.data should be profiled with \-b). .UNINDENT .INDENT 0.0 .TP .B \-\-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. .UNINDENT .INDENT 0.0 .TP .B \-\-perfdata=, \-\-pd Path of raw perf data created by Linux perf tool (it should be profiled with \-b). .UNINDENT .INDENT 0.0 .TP .B \-\-unsymbolized\-profile=, \-\-up Path of the unsymbolized profile created by \fBllvm\-profgen\fP with \fB\-\-skip\-symbolization\fP\&. .UNINDENT .INDENT 0.0 .TP .B \-\-llvm\-sample\-profile= Path of the LLVM sample profile. .UNINDENT .sp \fBNote:\fP .INDENT 0.0 .INDENT 3.5 Only one of \fB\-\-perfscript\fP, \fB\-\-perfdata\fP, \fB\-\-unsymbolized\-profile\fP, \fB\-\-llvm\-sample\-profile\fP, or \fB\-\-etm\fP may be specified at a time. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B \-\-binary= Path of the input profiled binary files. .UNINDENT .INDENT 0.0 .TP .B \-\-output= Path of the output profile file. .UNINDENT .SH OPTIONS .sp \fBllvm\-profgen\fP supports the following options: .INDENT 0.0 .TP .B \-\-format=[text|binary|extbinary|compbinary|gcc] Specify the format of the generated profile. Supported are \fItext\fP, \fIbinary\fP, \fIextbinary\fP, \fIcompbinary\fP, \fIgcc\fP, see \fIllvm\-profdata\fP for more descriptions of the format. .UNINDENT .INDENT 0.0 .TP .B \-\-show\-mmap\-events Print mmap events. .UNINDENT .INDENT 0.0 .TP .B \-\-show\-disassembly Print disassembled code. .UNINDENT .INDENT 0.0 .TP .B \-\-x86\-asm\-syntax=[att|intel] Specify whether to print assembly code in AT&T syntax (the default) or Intel syntax. .UNINDENT .INDENT 0.0 .TP .B \-\-debug\-binary= Path of debug info binary. \fBllvm\-profgen\fP will load the DWARF info from it instead of the executable binary. .UNINDENT .INDENT 0.0 .TP .B \-\-target\-triple= Override the target triple for the binary. This is useful for ETM trace decoding to specify the correct Arm M\-profile target. .UNINDENT .INDENT 0.0 .TP .B \-\-pid Process Id for the profiled executable binary. .UNINDENT .INDENT 0.0 .TP .B \-\-output= Path of the output profile file. .UNINDENT .INDENT 0.0 .TP .B \-\-data\-access\-perftrace= File path of a Linux perf raw trace (generated by \fBperf report \-D\fP) consisting of memory access events. .UNINDENT .SH Author Maintained by the LLVM Team (https://llvm.org/). .SH Copyright 2003-2026, LLVM Project .\" End of generated man page.