LLVMC(1)

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. Hidden option, useful for debugging.

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

--write-graph
    Write a compilation-graph.dot file in the current directory with the compilation graph description in the Graphviz format. Hidden option, useful for debugging.

--save-temps
    Write temporary files to the current directory and do not delete them on exit. Hidden option, useful for debugging.

--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 with opt.

-I directory
    Add a directory to the header file search path. This option can be repeated.

-L directory
    Add directory to the library search path. This option can be repeated.

-lname
    Link in the library libname.[bc | a | so]. This library should be a bitcode library.

-emit-llvm
    Make the output be 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.

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>).