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.
- -lname
- Link in the library libname.[bc | a | so]. This
library should be a bitcode library.
- -framework name
- Link in the library libname.[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>).