# LLVM: llvm-dis tool

### NAME

llvm-dis

### SYNOPSIS

llvm-dis [options] [filename]

### DESCRIPTION

The llvm-dis command is the LLVM disassembler. It takes an LLVM bytecode file and converts it into LLVM assembly language or C source code with equivalent functionality.

If filename is omitted, llvm-dis reads its input from standard input.

The default output file for llvm-dis is determined by the following logic:

- If the input is standard input or the file -, then the output is standard output.

- If the input filename ends in .bc, then the output filename will be identical, except that the .bc suffix will be replaced by the .ll or .c suffix (for LLVM assembly language and C code, respectively).

- If the input filename does not end in .bc, then the output filename will be identical to the input filename, except that the .ll or .c suffix will be appended to the filename (for LLVM assembly language and C code, respectively).

### OPTIONS

- -llvm
  Instruct llvm-dis to generate LLVM assembly code in human readable format. This is the default behavior.

- -c
  Instruct llvm-dis to generate C source code.

- -f
  Force overwrite. Normally, llvm-dis will refuse to overwrite an output file that already exists. With this option, llvm-dis will overwrite the output file.

- -help
  Print a summary of command line options.

- -o <filename>
  Specify the output filename. If filename is -, then the output is sent to standard output.

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

### EXIT STATUS

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

### SEE ALSO

llvm-as

LLVM Team