# LLVM Command Guide

These documents are HTML versions of the man pages for all of the LLVM tools. These pages describe how to use the LLVM commands and what their options are. Note that these pages do not describe all of the options available for all tools. To get a complete listing, pass the `-help` (general options) or `-help-hidden` (general+debugging options) arguments to the tool you are interested in.

## Basic Commands

- llvm-as - assemble a human-readable .ll file into bytecode
- llvm-dis - disassemble a bytecode file into a human-readable .ll file
- opt - run a series of LLVM-to-LLVM optimizations on a bytecode file
- llc - generate native machine code for a bytecode file
- lli - directly run a program compiled to bytecode using a JIT compiler or interpreter
- llvm-link - link several bytecode files into one
- llvm-ar - archive bytecode files
- llvm-ranlib - create an index for archives made with llvm-ar
- llvm-nm - print out the names and types of symbols in a bytecode file
- llvm-prof - format raw ``llvmprof.out`' data into a human-readable report
- llvm-ld - general purpose linker with loadable runtime optimization support
- llvm-config - print out LLVM compilation options, libraries, etc. as configured
- llvm-diff - structurally compare two modules
- llvm-cov - emit coverage information
- llvm-stress - generate random .ll files to fuzz different llvm components

## Debugging Tools

- bugpoint - automatic test-case reducer
- llvm-extract - extract a function from an LLVM bytecode file
- llvm-bcanalyzer - bytecode analyzer (analyzes the binary encoding itself, not the program it represents)

## Internal Tools

- FileCheck - Flexible file verifier used extensively by the testing harness
- tblgen - target description reader and generator
- lit - LLVM Integrated Tester, for running tests