2 <title>LLVM: llc tool</title>
6 <center><h1>LLVM: <tt>llc</tt> tool</h1></center>
13 <tt>llc [options] [filename]</tt>
17 The <tt>llc</tt> command compiles LLVM bytecode into assembly language for a
18 specified architecture. The assembly language output can then be passed through
19 a native assembler and linker to generate native code.
21 The choice of architecture for the output assembly code is determined as
26 If the user has specified an architecture with the -m option, use that
31 Examine the input LLVM bytecode file:
34 If it specifies little endian and a pointer size of 32 bits, select the
39 If it specifies big endian and a pointer size of 64 bit pointers,
40 select the SparcV9 architecture.
45 If <tt>llc</tt> was compiled on an architecture for which it can
46 generate code, select the architecture upon which <tt>llc</tt> was
51 Print a message to the user asking him or her to specify the output
52 architecture explicitly.
57 If filename is not specified, or if filename is -, <tt>llc</tt> reads its input
58 from standard input. Otherwise, it will read its input from filename.
61 If the -o option is left unspecified, then <tt>llc</tt> will send its output to standard
62 output if the input is from standard input. If the -o option specifies -, then
63 the output will also be sent to standard output.
66 If no -o option is specified and an input file other than - is specified, then
67 <tt>llc</tt> creates the output filename as follows:
71 If the file ends in .bc, then the .bc suffix is removed, and the .s suffix
75 Otherwise, the .s suffix is appended to the input filename.
84 Overwrite output files
89 Specify the architecture for which to generate assembly. Valid
94 <dd>IA-32 (Pentium and above)</dd>
101 <li>-o <filename>
103 Specify the output filename.
108 Print a summary of command line options.
118 Record the amount of time needed for each pass and print it to standard
123 <h4>X86 Specific Options</h4>
127 Disable frame pointer elimination optimization.
130 <li>-disable-pattern-isel
132 Use the 'simple' X86 instruction selector (the default).
135 <li>-print-machineinstrs
137 Print generated machine code.
140 <li>-regalloc=<ra>
142 Specify the register allocator to use. The default is <i>simple</i>.
143 Valid register allocators are:
146 <dd>Very simple register allocator</dd>
149 <dd>Local register allocator</dd>
155 <h4>Sparc Specific Options</h4>
157 <li>-disable-peephole
159 Disable peephole optimization pass.
164 Disable optimizations prior to instruction selection.
169 Disable local scheduling pass.
174 Do not strip the LLVM bytecode included in executable.
179 Emit LLVM-to-MachineCode mapping info to assembly.
186 If <tt>llc</tt> succeeds, it will exit with 0. Otherwise, if an error occurs,
187 it will exit with a non-zero value.
192 <a href="lli.html"><tt>lli</tt></a>
195 Maintained by the <a href="http://llvm.cs.uiuc.edu">LLVM Team</a>.