# 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`

Maintained by the LLVM Team.