# Low Level Virtual Machine

### NAME

opt

### SYNOPSIS

opt [options] < filename>

### DESCRIPTION

The opt command is the LLVM optimizer. It takes LLVM bytecode as input, runs the specified optimizations on it, and then outputs the optimized code in LLVM bytecode. The optimizations available via opt depend upon what libraries it was linked with, as well as any additional libraries that have been loaded with the -load option. Use the -help option to determine what optimizations you can use.

### OPTIONS

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

- -help
  Print a summary of command line options.

- -o <filename>
  Specify the output filename.

- -stats
  Print statistics.

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

- -internalize-public-api-file <filename>
  Preserve the symbol names listed in the file filename.

- -internalize-public-api-list=<list>
  Perserve the symbol names specified.

- -q
  Quiet mode. Do not print messages on whether the program was modified.

- -load <plugin.so>
  Load the dynamic object plugin.so. This object should register new optimization passes. Once loaded, the object will add new command line options to enable various optimizations. To see the new complete list of optimizations, use the -help and -load options together:

  opt -load <plugin.so> -help

- -p
  Print module after each transformation.

### EXIT STATUS

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

### SEE ALSO

analyze

LLVM Team