<html>
<title>LLVM: llc tool</title>

<body bgcolor=white>

<center><h1>LLVM: <tt>llc</tt> tool</h1></center>
<HR>

<h3>NAME</h3>
<tt>llc</tt>

<h3>SYNOPSIS</h3>
<tt>llc [options] [filename]</tt>

<h3>DESCRIPTION</h3>

The <tt>llc</tt> 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.
<p>
The choice of architecture for the output assembly code is determined as
follows:

<ul>
	<li>
	If the user has specified an architecture with the -m option, use that
	architecture.
	<p>

	<li>
	Examine the input LLVM bytecode file:
	<ul>
		<li>
		If it specifies little endian and a pointer size of 32 bits, select the
		x86 architecture.
		<p>
		
		<li>
		If it specifies big endian and a pointer size of 64 bit pointers,
		select the SparcV9 architecture.
	</ul>
	<p>

	<li>
	If <tt>llc</tt> was compiled on an architecture for which it can
	generate code, select the architecture upon which <tt>llc</tt> was
	compiled.
	<p>

	<li>
	Print a message to the user asking him or her to specify the output
	architecture explicitly.
</ul>

<p>

If filename is not specified, or if filename is -, <tt>llc</tt> reads its input
from standard input.  Otherwise, it will read its input from filename.
<p>

If the -o option is left unspecified, then <tt>llc</tt> 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.
<p>

If no -o option is specified and an input file other than - is specified, then
<tt>llc</tt> creates the output filename as follows:

<ul>
	<li>
	If the file ends in .bc, then the .bc suffix is removed, and the .s suffix
	is appended.
	<p>
	<li>
	Otherwise, the .s suffix is appended to the input filename.
</ul>

<h3>
OPTIONS
</h3>
<ul>
	<li>-f                   
	<br>
	Overwrite output files
	<p>

	<li>-m&lt;arch&gt;
	<br>
	Specify the architecture for which to generate assembly.  Valid
	architectures are:

	<dl compact>
		<di> x86
		<dd>IA-32 (Pentium and above)</dd>

		<di> sparc
		<dd>SPARC V9</dd>
	</dl>
	<p>

	<li>-o &lt;filename&gt;
	<br>
	Specify the output filename.
	<p>

	<li> -help
	<br>
	Print a summary of command line options.
	<p>

	<li> -stats
	<br>
	Print statistics.
	<p>

	<li> -time-passes
	<br>
	Record the amount of time needed for each pass and print it to standard
	error.
	<p>

</ul>
<h4>X86 Specific Options</h4>
<ul>
	<li>-disable-fp-elim
	<br>
	Disable frame pointer elimination optimization.
	<p>

	<li>-disable-pattern-isel
	<br>
	Use the 'simple' X86 instruction selector (the default).
	<p>

	<li>-print-machineinstrs
	<br>
	Print generated machine code.
	<p>

	<li>-regalloc=&lt;ra&gt;
	<br>
        Specify the register allocator to use. The default is <i>simple</i>.
        Valid register allocators are:
	<dl compact>
		<di> simple
		<dd>Very simple register allocator</dd>

		<di> local
		<dd>Local register allocator</dd>
	</dl>
	<p>

</ul>

<h4>Sparc Specific Options</h4>
<ul>
	<li>-disable-peephole
	<br>
	Disable peephole optimization pass.
	<p>

	<li>-disable-preopt
	<br>
	Disable optimizations prior to instruction selection.
	<p>

	<li>-disable-sched
	<br>
	Disable local scheduling pass.
	<p>

	<li>-disable-strip
	<br>
	Do not strip the LLVM bytecode included in executable.
	<p>

	<li>-enable-maps
	<br>
	Emit LLVM-to-MachineCode mapping info to assembly.
	<p>
</ul>


<h3>EXIT STATUS</h3>

If <tt>llc</tt> succeeds, it will exit with 0.  Otherwise, if an error occurs,
it will exit with a non-zero value.

<h3>
SEE ALSO
</h3>
<a href="lli.html"><tt>lli</tt></a>

<HR>
Maintained by the <a href="http://llvm.cs.uiuc.edu">LLVM Team</a>.
</body>
</html>

