blob: 41f45db9c77611502538f5298f6ec3884305ded8 [file] [log] [blame]
John Criswell69d903d2003-09-12 15:46:24 +00001<html>
2<title>
Chris Lattneree43b692003-09-25 19:50:05 +00003LLVM: llc tool
John Criswell69d903d2003-09-12 15:46:24 +00004</title>
5
6<body>
7
8<center>
Chris Lattneree43b692003-09-25 19:50:05 +00009<h1>LLVM: llc tool</h1>
John Criswell69d903d2003-09-12 15:46:24 +000010</center>
11<HR>
12
13<h3>
14NAME
15</h3>
16
17llc
18
19<h3>
20SYNOPSIS
21</h3>
22
John Criswell511a4912003-09-29 20:10:08 +000023llc [options] [filename]
John Criswell69d903d2003-09-12 15:46:24 +000024<h3>
25DESCRIPTION
26</h3>
27
28The llc command compiles LLVM bytecode into assembly language for a specified
29architecture. The assembly language output can then be passed through a native
30assembler and linker to generate native code.
John Criswell511a4912003-09-29 20:10:08 +000031<p>
32The choice of architecture for the output assembly code is determined as
33follows:
34
35<ul>
36 <li>
37 If the user has specified an architecture with the -m option, use that
38 architecture.
39 <p>
40
41 <li>
42 Examine the input LLVM bytecode file:
43 <ul>
44 <li>
45 If it specifies little endian and a pointer size of 32 bits, select the
46 x86 architecture.
47 <p>
48
49 <li>
50 If it specifies big endian and a pointer size of 64 bit pointers,
51 select the SparcV9 architecture.
52 </ul>
53 <p>
54
55 <li>
56 If llc was compiled on an architecture for which it can generate code,
57 select the architecture upon which llc was compiled.
58 <p>
59
60 <li>
61 Print a message to the user asking him or her to specify the output
62 architecture explicitly.
63</ul>
64
65<p>
66
67If filename is not specified, or if filename is -, llc reads its input from
68standard input. Otherwise, it will read its input from filename.
69<p>
70
71If the -o option is left unspecified, then llc will send its output to standard
72output if the input is from standard input. If the -o option specifies -, then
73the output will also be sent to standard output.
74<p>
75
76If no -o option is specified and an input file other than - is specified, then
77llc creates the output filename as follows:
78
79<ul>
80 <li>
81 If the file ends in .bc, then the .bc suffix is removed, and the .s suffix
82 is appended.
83 <p>
84 <li>
85 Otherwise, the .s suffix is appended to the input filename.
86</ul>
John Criswell69d903d2003-09-12 15:46:24 +000087
88<h3>
89OPTIONS
90</h3>
John Criswell69d903d2003-09-12 15:46:24 +000091<ul>
John Criswell69d903d2003-09-12 15:46:24 +000092 <li>-f
93 <br>
94 Overwrite output files
95 <p>
96
John Criswell69d903d2003-09-12 15:46:24 +000097 <li>-m&lt;arch&gt;
98 <br>
99 Specify the architecture for which to generate assembly. Valid
John Criswell69d903d2003-09-12 15:46:24 +0000100 architectures are:
101
102 <dl compact>
Alkis Evlogimenoseed462b2003-10-02 06:13:19 +0000103 <di> x86
104 <dd>IA-32 (Pentium and above)</dd>
John Criswell69d903d2003-09-12 15:46:24 +0000105
Alkis Evlogimenoseed462b2003-10-02 06:13:19 +0000106 <di> sparc
107 <dd>SPARC V9</dd>
John Criswell69d903d2003-09-12 15:46:24 +0000108 </dl>
109 <p>
110
111 <li>-o &lt;filename&gt;
112 <br>
John Criswell511a4912003-09-29 20:10:08 +0000113 Specify the output filename.
John Criswell69d903d2003-09-12 15:46:24 +0000114 <p>
115
John Criswell69d903d2003-09-12 15:46:24 +0000116 <li> -help
117 <br>
118 Print a summary of command line options.
119 <p>
120
121 <li> -stats
122 <br>
123 Print statistics.
124 <p>
125
126 <li> -time-passes
127 <br>
128 Record the amount of time needed for each pass and print it to standard
129 error.
130 <p>
Chris Lattner7a59bc82003-10-07 19:42:50 +0000131
John Criswell69d903d2003-09-12 15:46:24 +0000132</ul>
Chris Lattner7a59bc82003-10-07 19:42:50 +0000133<h4>X86 Specific Options</h4>
134<ul>
135 <li>-disable-fp-elim
136 <br>
137 Disable frame pointer elimination optimization.
138 <p>
139
140 <li>-disable-pattern-isel
141 <br>
142 Use the 'simple' X86 instruction selector (the default).
143 <p>
144
145 <li>-print-machineinstrs
146 <br>
147 Print generated machine code.
148 <p>
149
150 <li>-regalloc=&lt;ra&gt;
151 <br>
152 Specify the register allocator to use. The default is <i>simple</i>.
153 Valid register allocators are:
154 <dl compact>
155 <di> simple
156 <dd>Very simple register allocator</dd>
157
158 <di> local
159 <dd>Local register allocator</dd>
160 </dl>
161 <p>
162
163</ul>
164
165<h4>Sparc Specific Options</h4>
166<ul>
167 <li>-disable-peephole
168 <br>
169 Disable peephole optimization pass.
170 <p>
171
172 <li>-disable-preopt
173 <br>
174 Disable optimizations prior to instruction selection.
175 <p>
176
177 <li>-disable-sched
178 <br>
179 Disable local scheduling pass.
180 <p>
181
182 <li>-disable-strip
183 <br>
184 Do not strip the LLVM bytecode included in executable.
185 <p>
186
187 <li>-enable-maps
188 <br>
189 Emit LLVM-to-MachineCode mapping info to assembly.
190 <p>
191</ul>
192
John Criswell69d903d2003-09-12 15:46:24 +0000193
194<h3>
195EXIT STATUS
196</h3>
197
198If llc succeeds, it will exit with 0. Otherwise, if an error occurs, it
199will exit with a non-zero value.
200
201<h3>
202SEE ALSO
203</h3>
204llvm-dis, lli
205
206<HR>
207<a href="http://llvm.cs.uiuc.edu">LLVM Team</a>
208</body>
209</html>
210