LLVM-PROFGEN(1)

πŸ’… LLVM-PROFGEN β€” ok bestie, let's talk SPGO πŸ’–

so like. this is the manual for llvm-profgen, a.k.a. the LLVM SPGO profile generation tool πŸŽ€, living in the LLVM manual collection. she's a command-line girlie, she takes commands and options, and she makes profiles. periodt.


✨ SYNOPSIS ✨

llvm-profgen [commands] [options]

like, that's it. that's the whole shape of her. commands + options. go off πŸ‘‘


🌸 DESCRIPTION 🌸

okay so the llvm-profgen utility generates a profile data file from the perf script data files you hand her β€” all for sample-based profile guided optimization, aka SPGO (iykyk). that's the whole vibe: you give her perf traces, she gives you back a profile. iconic behavior fr fr ✨


🫢 COMMANDS 🫢

heads up bestie: you need at least one of these. not zero. at least one. minimum one. she will not run on vibes alone 😭

  • --perfscript=<string[,string,...]> β€” the path(s) to the perf-script trace, the one made by the Linux perf tool using its script command. lowkey important detail: that raw perf.data should have been profiled with -b. don't skip the -b. she'll know 🧚
  • --binary=<string[,string,...]> β€” the path(s) to the input profiled binary files. yes, plural allowed. multiple binaries, multiple paths, comma-separated, she's flexible like that πŸ’…
  • --output=<string> β€” the path where the output profile file goes. one string. that's where your masterpiece lands πŸŽ€

πŸ”₯ OPTIONS πŸ”₯

here's everything llvm-profgen supports, no gatekeeping, we don't do that here:

  • --format=[text|binary|extbinary|compbinary|gcc] β€” picks the format of the generated profile. the supported formats are exactly text, binary, extbinary, compbinary, and gcc. for the full tea on what each of those actually means, go read the llvm-profdata docs, she's the format authority around here πŸ‘‘
  • --show-mmap-events β€” prints mmap events. that's it. that's the whole thing. mmap events, printed 🌈
  • --show-disassembly β€” prints disassembled code. for when you wanna see the assembly with your own two eyes πŸ‘€
  • --x86-asm-syntax=[att|intel] β€” tells her whether to print assembly code in AT&T syntax or Intel syntax. and bestie, note this: att is the default. so if you say nothing, you get AT&T. say intel if you want the other one πŸ’œ

πŸ¦‹ AUTHOR πŸ¦‹

maintained by the LLVM Team β€” you can find them at https://llvm.org/ 🫢


2003-2026, LLVM Project β€” that's a long-running queen, honestly πŸ’€πŸ‘‘


quick reminder bestie: at least one command. at least one. the --perfscript, --binary, and --output girlies are not optional-optional, one of them has to show up. no cap. πŸŽ€

and that's the whole page, mwah πŸ’– this was the LLVM manual page for llvm-profgen, dated 2026-07-22 β€” so go profile something, slay, and remember: sample-based profile guided optimization is a lifestyle, not a phase βœ¨πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from