# LLVM Command Guide

The following documents are command descriptions 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 and debugging options) arguments to the tool you are interested in.

## Basic Commands

- llvm-as - LLVM assembler
- llvm-dis - LLVM disassembler
- opt - LLVM optimizer
- llc - LLVM static compiler
- lli - directly execute programs from LLVM bitcode
- llvm-link - LLVM bitcode linker
- llvm-ar - LLVM archiver
- llvm-lib - LLVM lib.exe compatible library tool
- llvm-nm - list LLVM bitcode and object file’s symbol table
- llvm-config - Print LLVM compilation options
- llvm-diff - LLVM structural ‘diff’
- llvm-cov - emit coverage information
- llvm-profdata - Profile data tool
- llvm-stress - generate random .ll files
- llvm-symbolizer - convert addresses into source code locations
- llvm-dwarfdump - dump and verify DWARF debug information
- dsymutil - manipulate archived DWARF debug symbol files
- llvm-mca - LLVM Machine Code Analyzer

## Debugging Tools

- bugpoint - automatic test case reduction tool
- llvm-extract - extract a function from an LLVM module
- llvm-bcanalyzer - LLVM bitcode analyzer

## Developer Tools

- FileCheck - Flexible pattern matching file verifier
- tblgen - Target Description To C++ Code Generator
- lit - LLVM Integrated Tester
- llvm-build - LLVM Project Build Utility
- llvm-exegesis - LLVM Machine Instruction Benchmark
- llvm-pdbutil - PDB File forensics and diagnostics
- llvm-readobj - LLVM Object Reader