LLVM-PROFGEN(1)
π LLVM-PROFGEN(1) β the llvm-profgen page, bestie edition
okay so you're reading the llvm-profgen manual page (section 1, the "user commands" girlies π
) and honestly? you came to the right place. let's get into it. π
β¨ NAME β¨
llvm-profgen β the LLVM SPGO profile generation tool. that's it. that's the name. she generates. π
π¦ SYNOPSIS π¦
llvm-profgen [commands] [options]
πΈ DESCRIPTION πΈ
so basically the llvm-profgen utility generates a profile data file from given perf script data files, for sample-based profile guided optimization (SPGO). iconic behaviour, no notes. π₯
π COMMANDS π
you need at least one of these bad boys (well β one of the trace-y ones, see the note below, don't come for me):
--perfscript=<string[,string,...]>β path of the perf-script trace, created by the Linux perf tool with thescriptcommand (and psst: the rawperf.datashould be profiled with-b). π--etm=<string>β path of the ETM trace file created by the ARM CoreSight trace tools. heads up: this one needs the OpenCSD library version 1.5.4 or higher enabled during the build. no OpenCSD, no ETM, iykyk. π§--perfdata=<perfdata>,--pdβ path of the raw perf data created by the Linux perf tool (it should be profiled with-b). she's the raw one. π--unsymbolized-profile=<unsymbolized profile>,--upβ path of the unsymbolized profile created byllvm-profgenwith--skip-symbolization. yes she can read her own output, self-sufficient queen. β¨--llvm-sample-profile=<llvm sample profile>β path of the LLVM sample profile. straightforward. slay. πΈ
note: only one of--perfscript,--perfdata,--unsymbolized-profile,--llvm-sample-profile, or--etmmay be specified at a time. one. singular. pick your fighter and commit. π
--binary=<string[,string,...]>β path of the input profiled binary files. π«Ά--output=<string>β path of the output profile file. the whole point, honestly. π
π OPTIONS π
llvm-profgen supports the following options β buckle up bestie, there's a whole list:
--format=[text|binary|extbinary|compbinary|gcc]β specify the format of the generated profile. the supported<format>values aretext,binary,extbinary,compbinary,gccβ and if you want the full lore on what each of those means, seellvm-profdata, she explains it better. π--show-mmap-eventsβ print mmap events. that's literally it. πΊοΈ--show-disassemblyβ print disassembled code. assembly girlies rise. π--x86-asm-syntax=[att|intel]β specify whether to print assembly code in AT&T syntax (which is the default, fyi π) or Intel syntax. choose your vibe.--debug-binary=<debug-binary>β path of the debug info binary.llvm-profgenwill load the DWARF info from it instead of the executable binary. so she's reading the debug twin, not the main character. π¦--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. very "let me be clear about who i am" energy. π―--pidβ Process Id for the profiled executable binary. π--output=<output>β path of the output profile file. yes she shows up twice (once up in commands, once here) and honestly? she's allowed. consistency queen. ππ--data-access-perftrace=<data-access-perftrace>β file path of a Linux perf raw trace (generated byperf report -D) consisting of memory access events. π
π Author π
maintained by the LLVM Team (https://llvm.org/). literal legends, we stan. π«Ά
π Copyright π
2003-2026, LLVM Project. periodt. π
and that's the whole page, bestie β this was the LLVM manual, version 23, dated 2026-10-20, page LLVM-PROFGEN(1), brought to you with love and way too many emoji. mwah. πβ¨πΈ
π¦ where this page comes from
- arch rolling: llvm 23.1.4-1 Β· Apache-2.0 WITH LLVM-exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms