LLVM-EXTRACT(1)

✨ LLVM-EXTRACT(1) ✨

okay so bestie, this is the LLVM-EXTRACT(1) page for llvm-extract, straight from the LLVM manual. It’s literally giving β€œpull one function out of an LLVM module” main character energy. πŸ’…


πŸŽ€ NAME πŸŽ€

llvm-extract - extract a function from an LLVM module

🌸 SYNOPSIS 🌸

llvm-extract [options] --func function-name [filename]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so llvm-extract takes the name of a function and extracts it from the LLVM bitcode file you give it. It is primarily used as a debugging tool to reduce test cases from larger programs that are triggering a bug. Literally the cleanup queen for bug repros. πŸ‘‘

In addition to extracting the bitcode of the specified function, llvm-extract will also remove unreachable global variables, prototypes, and unused types. Slay, no dead weight. ✨

llvm-extract reads its input from standard input if filename is omitted or if filename is -. The output is always written to standard output, unless the -o option is specified (see below). Periodt.

πŸ’… OPTIONS πŸ’…

okay so here’s the full option menu, bestie β€” every flag, every argument, no skips. 🫢

  • --alias alias-name β€” extract the alias named function-name from the LLVM bitcode. May be specified multiple times to extract multiple alias at once.
  • --ralias alias-regular-expr β€” extract the alias matching alias-regular-expr from the LLVM bitcode. All alias matching the regular expression will be extracted. May be specified multiple times.
  • --bb basic-block-specifier β€” extract basic blocks(s) specified in basic-block-specifier. May be specified multiple times. Each <function:bb[;bb]> specifier pair will create a function. If multiple basic blocks are specified in one pair, the first block in the sequence should dominate the rest.
  • --delete β€” delete specified Globals from Module.
  • -f β€” enable binary output on terminals. Normally, llvm-extract will refuse to write raw bitcode output if the output stream is a terminal. With this option, llvm-extract will write raw bitcode regardless of the output device.
  • --func function-name β€” extract the function named function-name from the LLVM bitcode. May be specified multiple times to extract multiple functions at once.
  • --rfunc function-regular-expr β€” extract the function(s) matching function-regular-expr from the LLVM bitcode. All functions matching the regular expression will be extracted. May be specified multiple times.
  • --glob global-name β€” extract the global variable named global-name from the LLVM bitcode. May be specified multiple times to extract multiple global variables at once.
  • --rglob glob-regular-expr β€” extract the global variable(s) matching global-regular-expr from the LLVM bitcode. All global variables matching the regular expression will be extracted. May be specified multiple times.
  • --keep-const-init β€” preserve the values of constant globals.
  • --recursive β€” recursively extract all called functions.
  • -help β€” print a summary of command line options.
  • -o filename β€” specify the output filename. If filename is - (the default), then llvm-extract sends its output to standard output.
  • -S β€” write output in LLVM intermediate language (instead of bitcode).

πŸ’€ EXIT STATUS πŸ’€

If llvm-extract succeeds, it will exit with 0. Otherwise, if an error occurs, it will exit with a non-zero value. Bestie, zero means we ate; non-zero means something went sideways. 😭

🌈 SEE ALSO 🌈

bugpoint(1)

πŸ‘‘ AUTHOR πŸ‘‘

Maintained by the LLVM Team (https://llvm.org/). They keep the lights on. 🫢

2003-2025, LLVM Project


bye bestie 🫢 β€” source/version: LLVM 19, date: 2025-01-17. LLVM-EXTRACT(1) out. πŸ’…βœ¨

πŸ“¦ where this page comes from