---
name: "llvmc-2.9"
section: "1"
platform: "linux"
package: "llvm-2.9"
version: "2.9+dfsg-7"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/llvmc-2.9"
---

# llvmc-2.9(1)

The LLVM Compiler Driver (WIP)

## NAME

llvmc - The LLVM Compiler Driver (WIP)

## SYNOPSIS

**llvmc** \[*options*\] *filenames...*

## DESCRIPTION

**llvmc** is a configurable driver for invoking other LLVM (and non-LLVM) tools in order to compile, optimize and link software for multiple languages. For those familiar with FSF's **gcc** tool, it is very similar.  Please note that **llvmc** is considered an experimental tool.

## OPTIONS

### Built-in Options

LLVMC has some built-in options that can't be overridden in the configuration libraries.

- **-o** *filename*

  Output file name.

- **-x** *language*

  Specify the language of the following input files until the next **-x** option.

- **-load** *plugin\_name*

  Load the specified plugin DLL. Example: -load `$LLVM_DIR`/Release/lib/LLVMCSimple.so.

- **-v** or **--verbose**

  Enable verbose mode, i.e. print out all executed commands.

- **--check-graph**

  Check the compilation for common errors like mismatched output/input language names, multiple default edges and cycles. Because of plugins, these checks can't be performed at compile-time. Exit with code zero if no errors were found, and return the number of found errors otherwise. Hidden option, useful for debugging LLVMC plugins.

- **--view-graph**

  Show a graphical representation of the compilation graph and exit. Requires that you have *dot* and *gv* programs installed. Hidden option, useful for debugging LLVMC plugins.

- **--write-graph**

  Write a *compilation-graph.dot* file in the current directory with the compilation graph description in Graphviz format (identical to the file used by the **--view-graph** option). The **-o** option can be used to set the output file name. Hidden option, useful for debugging LLVMC plugins.

- **--save-temps**

  Write temporary files to the current directory and do not delete them on exit. This option can also take an argument: the *--save-temps=obj* switch will write files into the directory specified with the *-o* option. The *--save-temps=cwd* and *--save-temps* switches are both synonyms for the default behaviour.

- **--temp-dir** *directory*

  Store temporary files in the given directory. This directory is deleted on exit unless *--save-temps* is specified. If *--save-temps=obj* is also specified, *--temp-dir* is given the precedence.

- **-help**

  Print a summary of command-line options and exit.

- **-help-hidden**

  Print a summary of command-line options and exit. Print help even for options intended for developers.

- **--version**

  Print version information and exit.

- **@***file*

  Read command-line options from *file*. The options read are inserted in place of the original @*file* option. If *file* does not exist, or cannot be read, then the option will be treated literally, and not removed.

  Options in *file* are separated by whitespace. A whitespace character may be included in an option by surrounding the entire option in either single or double quotes. Any character (including a backslash) may be included by prefixing the character to be included with a backslash. The file may itself contain additional @*file* options; any such options will be processed recursively.

### Control Options

By default, LLVMC is built with some standard configuration libraries that define the following options:

- **-clang**

  Use Clang instead of llvm-gcc.

- **-opt**

  Enable optimization passes with **opt**. To pass options to the **opt** program use the **-Wo,** option.

- **-I** *directory*

  Add a directory to the header file search path.

- **-L** *directory*

  Add *directory* to the library search path.

- **-F** *directory*

  Add *directory* to the framework search path.

- **-l***name*

  Link in the library lib*name*.\[bc \| a \| so\].  This library should be a bitcode library.

- **-framework** *name*

  Link in the library lib*name*.\[bc \| a \| so\].  This library should be a bitcode library.

- **-emit-llvm**

  Output LLVM bitcode (with **-c**) or assembly (with **-S**) instead of native object (or assembly).  If **-emit-llvm** is given without either **-c** or **-S** it has no effect.

- **-Wa**

  Pass options to assembler.

- **-Wl**

  Pass options to linker.

- **-Wo**

  Pass options to opt.

- **-Wllc**

  Pass options to llc (code generator).

## EXIT STATUS

If **llvmc** succeeds, it will exit with code 0.  Otherwise, if an error occurs, it will exit with a non-zero value. If one of the compilation tools returns a non-zero status, pending actions will be discarded and **llvmc** will return the same result code as the failing compilation tool.

## SEE ALSO

llvm-gcc, llvm-g++, llvm-as, llvm-dis, llc, llvm-link

## AUTHORS

Maintained by the LLVM Team (\<http://llvm.org\>).
