LLVM-PROFGEN(1)
πΈ NAME πΈ
okay bestie, welcome to the LLVM-PROFGEN(1) page from the LLVM manual β this one is literally about llvm-profgen, the LLVM SPGO profile generation tool. No cap, that's the name vibe. π
β¨ SYNOPSIS β¨
llvm-profgen [commands] [options]
π¦ DESCRIPTION π¦
So llvm-profgen is the utility that generates a profile data file from the perf script data files you give it, all for sample-based profile guided optimization(SPGO). That's the main character job, periodt. π
π COMMANDS π
At least one of the following commands are required:
--perfscript=<string[,string,...]>β path of the perf-script trace created by the Linux perf tool with thescriptcommand (the rawperf.datashould be profiled with-b). π--etm=<string>β path of the ETM trace file created by ARM CoreSight trace tools. This one requires the OpenCSD library version1.5.4or higher to be enabled during the build. π¦--perfdata=<perfdata>,--pdβ path of raw perf data created by the Linux perf tool (it should be profiled with-b). β¨--unsymbolized-profile=<unsymbolized profile>,--upβ path of the unsymbolized profile created byllvm-profgenwith--skip-symbolization. π--llvm-sample-profile=<llvm sample profile>β path of the LLVM sample profile. πΈ
β οΈ NOTE: Only one of--perfscript,--perfdata,--unsymbolized-profile,--llvm-sample-profile, or--etmmay be specified at a time. π«Ά
--binary=<string[,string,...]>β path of the input profiled binary files. π₯--output=<string>β path of the output profile file. π
π OPTIONS π
llvm-profgen supports the following options, bestie β yes, we're listing every single one:
--format=[text|binary|extbinary|compbinary|gcc]β specify the format of the generated profile. Supported<format>aretext,binary,extbinary,compbinary,gcc; seellvm-profdatafor more descriptions of the format. π--show-mmap-eventsβ print mmap events. π--show-disassemblyβ print disassembled code. π§--x86-asm-syntax=[att|intel]β specify whether to print assembly code in AT&T syntax (the default) or Intel syntax. π--debug-binary=<debug-binary>β path of the debug info binary.llvm-profgenwill load the DWARF info from it instead of the executable binary. π¦--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. β--pidβ Process Id for the profiled executable binary. π--output=<output>β path of the output profile file. (Yep,--outputshows up here too with<output>.) π--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/). π
π COPYRIGHT π
2003-2026, LLVM Project
Cute sign-off: this page is from the LLVM manual, LLVM-PROFGEN(1), page 23, dated 2026-10-06. Bye bestie, mwah π
π¦ where this page comes from
- centos-stream 9: llvm 23.1.3-1.el9 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- centos-stream 9: llvm 23.1.3-1.el9 Β· Apache-2.0 WITH LLVM-exception OR NCSA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms