|
1 .\" Man page generated from reStructuredText. |
|
2 . |
|
3 .TH "LLC" "1" "2016-07-10" "3.8" "LLVM" |
|
4 .SH NAME |
|
5 llc \- LLVM static compiler |
|
6 . |
|
7 .nr rst2man-indent-level 0 |
|
8 . |
|
9 .de1 rstReportMargin |
|
10 \\$1 \\n[an-margin] |
|
11 level \\n[rst2man-indent-level] |
|
12 level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] |
|
13 - |
|
14 \\n[rst2man-indent0] |
|
15 \\n[rst2man-indent1] |
|
16 \\n[rst2man-indent2] |
|
17 .. |
|
18 .de1 INDENT |
|
19 .\" .rstReportMargin pre: |
|
20 . RS \\$1 |
|
21 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] |
|
22 . nr rst2man-indent-level +1 |
|
23 .\" .rstReportMargin post: |
|
24 .. |
|
25 .de UNINDENT |
|
26 . RE |
|
27 .\" indent \\n[an-margin] |
|
28 .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] |
|
29 .nr rst2man-indent-level -1 |
|
30 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] |
|
31 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u |
|
32 .. |
|
33 .SH SYNOPSIS |
|
34 .sp |
|
35 \fBllc\fP [\fIoptions\fP] [\fIfilename\fP] |
|
36 .SH DESCRIPTION |
|
37 .sp |
|
38 The \fBllc\fP command compiles LLVM source inputs into assembly language |
|
39 for a specified architecture. The assembly language output can then be passed |
|
40 through a native assembler and linker to generate a native executable. |
|
41 .sp |
|
42 The choice of architecture for the output assembly code is automatically |
|
43 determined from the input file, unless the \fB\-march\fP option is used to |
|
44 override the default. |
|
45 .SH OPTIONS |
|
46 .sp |
|
47 If \fBfilename\fP is "\fB\-\fP" or omitted, \fBllc\fP reads from standard input. |
|
48 Otherwise, it will from \fBfilename\fP\&. Inputs can be in either the LLVM assembly |
|
49 language format (\fB\&.ll\fP) or the LLVM bitcode format (\fB\&.bc\fP). |
|
50 .sp |
|
51 If the \fB\-o\fP option is omitted, then \fBllc\fP will send its output |
|
52 to standard output if the input is from standard input. If the \fB\-o\fP |
|
53 option specifies "\fB\-\fP", then the output will also be sent to standard output. |
|
54 .sp |
|
55 If no \fB\-o\fP option is specified and an input file other than "\fB\-\fP" is |
|
56 specified, then \fBllc\fP creates the output filename by taking the input |
|
57 filename, removing any existing \fB\&.bc\fP extension, and adding a \fB\&.s\fP suffix. |
|
58 .sp |
|
59 Other \fBllc\fP options are described below. |
|
60 .SS End\-user Options |
|
61 .INDENT 0.0 |
|
62 .TP |
|
63 .B \-help |
|
64 Print a summary of command line options. |
|
65 .UNINDENT |
|
66 .INDENT 0.0 |
|
67 .TP |
|
68 .B \-O=uint |
|
69 Generate code at different optimization levels. These correspond to the |
|
70 \fB\-O0\fP, \fB\-O1\fP, \fB\-O2\fP, and \fB\-O3\fP optimization levels used by |
|
71 \fBclang\fP\&. |
|
72 .UNINDENT |
|
73 .INDENT 0.0 |
|
74 .TP |
|
75 .B \-mtriple=<target triple> |
|
76 Override the target triple specified in the input file with the specified |
|
77 string. |
|
78 .UNINDENT |
|
79 .INDENT 0.0 |
|
80 .TP |
|
81 .B \-march=<arch> |
|
82 Specify the architecture for which to generate assembly, overriding the target |
|
83 encoded in the input file. See the output of \fBllc \-help\fP for a list of |
|
84 valid architectures. By default this is inferred from the target triple or |
|
85 autodetected to the current architecture. |
|
86 .UNINDENT |
|
87 .INDENT 0.0 |
|
88 .TP |
|
89 .B \-mcpu=<cpuname> |
|
90 Specify a specific chip in the current architecture to generate code for. |
|
91 By default this is inferred from the target triple and autodetected to |
|
92 the current architecture. For a list of available CPUs, use: |
|
93 .INDENT 7.0 |
|
94 .INDENT 3.5 |
|
95 .sp |
|
96 .nf |
|
97 .ft C |
|
98 llvm\-as < /dev/null | llc \-march=xyz \-mcpu=help |
|
99 .ft P |
|
100 .fi |
|
101 .UNINDENT |
|
102 .UNINDENT |
|
103 .UNINDENT |
|
104 .INDENT 0.0 |
|
105 .TP |
|
106 .B \-filetype=<output file type> |
|
107 Specify what kind of output \fBllc\fP should generated. Options are: \fBasm\fP |
|
108 for textual assembly ( \fB\(aq.s\(aq\fP), \fBobj\fP for native object files (\fB\(aq.o\(aq\fP) |
|
109 and \fBnull\fP for not emitting anything (for performance testing). |
|
110 .sp |
|
111 Note that not all targets support all options. |
|
112 .UNINDENT |
|
113 .INDENT 0.0 |
|
114 .TP |
|
115 .B \-mattr=a1,+a2,\-a3,... |
|
116 Override or control specific attributes of the target, such as whether SIMD |
|
117 operations are enabled or not. The default set of attributes is set by the |
|
118 current CPU. For a list of available attributes, use: |
|
119 .INDENT 7.0 |
|
120 .INDENT 3.5 |
|
121 .sp |
|
122 .nf |
|
123 .ft C |
|
124 llvm\-as < /dev/null | llc \-march=xyz \-mattr=help |
|
125 .ft P |
|
126 .fi |
|
127 .UNINDENT |
|
128 .UNINDENT |
|
129 .UNINDENT |
|
130 .INDENT 0.0 |
|
131 .TP |
|
132 .B \-\-disable\-fp\-elim |
|
133 Disable frame pointer elimination optimization. |
|
134 .UNINDENT |
|
135 .INDENT 0.0 |
|
136 .TP |
|
137 .B \-\-disable\-excess\-fp\-precision |
|
138 Disable optimizations that may produce excess precision for floating point. |
|
139 Note that this option can dramatically slow down code on some systems |
|
140 (e.g. X86). |
|
141 .UNINDENT |
|
142 .INDENT 0.0 |
|
143 .TP |
|
144 .B \-\-enable\-no\-infs\-fp\-math |
|
145 Enable optimizations that assume no Inf values. |
|
146 .UNINDENT |
|
147 .INDENT 0.0 |
|
148 .TP |
|
149 .B \-\-enable\-no\-nans\-fp\-math |
|
150 Enable optimizations that assume no NAN values. |
|
151 .UNINDENT |
|
152 .INDENT 0.0 |
|
153 .TP |
|
154 .B \-\-enable\-unsafe\-fp\-math |
|
155 Enable optimizations that make unsafe assumptions about IEEE math (e.g. that |
|
156 addition is associative) or may not work for all input ranges. These |
|
157 optimizations allow the code generator to make use of some instructions which |
|
158 would otherwise not be usable (such as \fBfsin\fP on X86). |
|
159 .UNINDENT |
|
160 .INDENT 0.0 |
|
161 .TP |
|
162 .B \-\-stats |
|
163 Print statistics recorded by code\-generation passes. |
|
164 .UNINDENT |
|
165 .INDENT 0.0 |
|
166 .TP |
|
167 .B \-\-time\-passes |
|
168 Record the amount of time needed for each pass and print a report to standard |
|
169 error. |
|
170 .UNINDENT |
|
171 .INDENT 0.0 |
|
172 .TP |
|
173 .B \-\-load=<dso_path> |
|
174 Dynamically load \fBdso_path\fP (a path to a dynamically shared object) that |
|
175 implements an LLVM target. This will permit the target name to be used with |
|
176 the \fB\-march\fP option so that code can be generated for that target. |
|
177 .UNINDENT |
|
178 .INDENT 0.0 |
|
179 .TP |
|
180 .B \-meabi=[default|gnu|4|5] |
|
181 Specify which EABI version should conform to. Valid EABI versions are \fIgnu\fP, |
|
182 \fI4\fP and \fI5\fP\&. Default value (\fIdefault\fP) depends on the triple. |
|
183 .UNINDENT |
|
184 .SS Tuning/Configuration Options |
|
185 .INDENT 0.0 |
|
186 .TP |
|
187 .B \-\-print\-machineinstrs |
|
188 Print generated machine code between compilation phases (useful for debugging). |
|
189 .UNINDENT |
|
190 .INDENT 0.0 |
|
191 .TP |
|
192 .B \-\-regalloc=<allocator> |
|
193 Specify the register allocator to use. |
|
194 Valid register allocators are: |
|
195 .sp |
|
196 \fIbasic\fP |
|
197 .INDENT 7.0 |
|
198 .INDENT 3.5 |
|
199 Basic register allocator. |
|
200 .UNINDENT |
|
201 .UNINDENT |
|
202 .sp |
|
203 \fIfast\fP |
|
204 .INDENT 7.0 |
|
205 .INDENT 3.5 |
|
206 Fast register allocator. It is the default for unoptimized code. |
|
207 .UNINDENT |
|
208 .UNINDENT |
|
209 .sp |
|
210 \fIgreedy\fP |
|
211 .INDENT 7.0 |
|
212 .INDENT 3.5 |
|
213 Greedy register allocator. It is the default for optimized code. |
|
214 .UNINDENT |
|
215 .UNINDENT |
|
216 .sp |
|
217 \fIpbqp\fP |
|
218 .INDENT 7.0 |
|
219 .INDENT 3.5 |
|
220 Register allocator based on \(aqPartitioned Boolean Quadratic Programming\(aq. |
|
221 .UNINDENT |
|
222 .UNINDENT |
|
223 .UNINDENT |
|
224 .INDENT 0.0 |
|
225 .TP |
|
226 .B \-\-spiller=<spiller> |
|
227 Specify the spiller to use for register allocators that support it. Currently |
|
228 this option is used only by the linear scan register allocator. The default |
|
229 \fBspiller\fP is \fIlocal\fP\&. Valid spillers are: |
|
230 .sp |
|
231 \fIsimple\fP |
|
232 .INDENT 7.0 |
|
233 .INDENT 3.5 |
|
234 Simple spiller |
|
235 .UNINDENT |
|
236 .UNINDENT |
|
237 .sp |
|
238 \fIlocal\fP |
|
239 .INDENT 7.0 |
|
240 .INDENT 3.5 |
|
241 Local spiller |
|
242 .UNINDENT |
|
243 .UNINDENT |
|
244 .UNINDENT |
|
245 .SS Intel IA\-32\-specific Options |
|
246 .INDENT 0.0 |
|
247 .TP |
|
248 .B \-\-x86\-asm\-syntax=[att|intel] |
|
249 Specify whether to emit assembly code in AT&T syntax (the default) or Intel |
|
250 syntax. |
|
251 .UNINDENT |
|
252 .SH EXIT STATUS |
|
253 .sp |
|
254 If \fBllc\fP succeeds, it will exit with 0. Otherwise, if an error |
|
255 occurs, it will exit with a non\-zero value. |
|
256 .SH SEE ALSO |
|
257 .sp |
|
258 lli |
|
259 .SH AUTHOR |
|
260 Maintained by The LLVM Team (http://llvm.org/). |
|
261 .SH COPYRIGHT |
|
262 2003-2016, LLVM Project |
|
263 .\" Generated by docutils manpage writer. |
|
264 . |