LLVM: llc tool
NAME
llc
SYNOPSIS
llc [options] [filename]
DESCRIPTION
The llc command compiles LLVM bytecode into assembly language for a
specified architecture. The assembly language output can then be passed through
a native assembler and linker to generate native code.
The choice of architecture for the output assembly code is determined as
follows:
-
If the user has specified an architecture with the -m option, use that
architecture.
-
Examine the input LLVM bytecode file:
-
If it specifies little endian and a pointer size of 32 bits, select the
x86 architecture.
-
If it specifies big endian and a pointer size of 64 bit pointers,
select the SparcV9 architecture.
-
If llc was compiled on an architecture for which it can
generate code, select the architecture upon which llc was
compiled.
-
Print a message to the user asking him or her to specify the output
architecture explicitly.
If filename is not specified, or if filename is -, llc reads its input
from standard input. Otherwise, it will read its input from filename.
If the -o option is left unspecified, then llc will send its output to standard
output if the input is from standard input. If the -o option specifies -, then
the output will also be sent to standard output.
If no -o option is specified and an input file other than - is specified, then
llc creates the output filename as follows:
-
If the file ends in .bc, then the .bc suffix is removed, and the .s suffix
is appended.
-
Otherwise, the .s suffix is appended to the input filename.
OPTIONS
- -f
Overwrite output files
- -m<arch>
Specify the architecture for which to generate assembly. Valid
architectures are:
- x86
- IA-32 (Pentium and above)
- sparcv9
- SPARC V9
- c
- Emit C code
- -o <filename>
Specify the output filename.
- -enable-correct-eh-support
Instruct the -lowerinvoke pass to insert code for correct exception handling
support. This is expensive and is by default omitted for efficiency.
- -help
Print a summary of command line options.
- -stats
Print statistics.
- -time-passes
Record the amount of time needed for each pass and print it to standard
error.
X86 Specific Options
- -disable-fp-elim
Disable frame pointer elimination optimization.
- -disable-pattern-isel
Use the 'simple' X86 instruction selector (the default).
- -print-machineinstrs
Print generated machine code.
- -regalloc=<ra>
Specify the register allocator to use. The default is local.
Valid register allocators are:
- simple
- Very simple register allocator
- local
- Local register allocator
- linearscan
- Linear scan global register allocator (experimental)
- -spiller=<sp>
Specify the spiller to use for register allocators that support it.
Currently this option is used by the linear scan register
allocator. The default is local.
Valid spillers are:
- simple
- Simple spiller
- local
- Local spiller
Sparc Specific Options
- -disable-peephole
Disable peephole optimization pass.
- -disable-sched
Disable local scheduling pass.
- -disable-strip
Do not strip the LLVM bytecode included in executable.
- -enable-maps
Emit LLVM-to-MachineCode mapping info to assembly.
EXIT STATUS
If llc succeeds, it will exit with 0. Otherwise, if an error occurs,
it will exit with a non-zero value.
SEE ALSO
lli
Maintained by the LLVM Team.