# LLVM: `extract` tool

### NAME

`extract`

### SYNOPSIS

`extract [options] [filename]`

### DESCRIPTION

The `extract` command takes the name of a function and extracts it from the specified LLVM bytecode file. It is primarily used as a debugging tool to reduce test cases from larger programs that are triggering a bug.

In addition to extracting the bytecode of the specified function, `extract` will also remove unreachable global variables, prototypes, and unused types.

The `extract` command reads its input from standard input if filename is omitted or if filename is -. The output is always written to standard output.

### OPTIONS

- -f
  Force overwrite. Normally, `extract` will refuse to overwrite an output file that already exists. With this option, `extract` will overwrite the output file and replace it with new bytecode.

- -func <function>
  Extract the specified function from the LLVM bytecode.

- -help
  Print a summary of command line options.

- -o <filename>
  Specify the output filename. If filename is "-" (the default), then `extract` sends its output to standard output.

- -stats
  Print statistics.

- -time-passes
  Record the amount of time needed for each pass and print it to standard error.

### EXIT STATUS

If `extract` succeeds, it will exit with 0. Otherwise, if an error occurs, it will exit with a non-zero value.

### SEE ALSO

`bugpoint`

Maintained by the LLVM Team.