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.