Added information on input and output filenames.
[oota-llvm.git] / docs / CommandGuide / llc.html
1 <html>
2 <title>
3 LLVM: llc tool
4 </title>
5
6 <body>
7
8 <center>
9 <h1>LLVM: llc tool</h1>
10 </center>
11 <HR>
12
13 <h3>
14 NAME
15 </h3>
16
17 llc
18
19 <h3>
20 SYNOPSIS
21 </h3>
22
23 llc [options] [filename]
24 <h3>
25 DESCRIPTION
26 </h3>
27
28 The llc command compiles LLVM bytecode into assembly language for a specified
29 architecture.  The assembly language output can then be passed through a native
30 assembler and linker to generate native code.
31 <p>
32 The choice of architecture for the output assembly code is determined as
33 follows:
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
67 If filename is not specified, or if filename is -, llc reads its input from
68 standard input.  Otherwise, it will read its input from filename.
69 <p>
70
71 If the -o option is left unspecified, then llc will send its output to standard
72 output if the input is from standard input.  If the -o option specifies -, then
73 the output will also be sent to standard output.
74 <p>
75
76 If no -o option is specified and an input file other than - is specified, then
77 llc 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>
87
88 <h3>
89 OPTIONS
90 </h3>
91
92 <ul>
93         <li>-disable-fp-elim     
94         <br>
95         Disable frame pointer elimination optimization.
96         <p>
97
98         <li>-disable-local-ra    
99         <br>
100         Use Simple RA instead of Local RegAlloc.
101         <p>
102
103         <li>-disable-pattern-isel
104         <br>
105         Use the 'simple' X86 instruction selector.
106         <p>
107
108         <li>-disable-peephole    
109         <br>
110         Disable peephole optimization pass.
111         <p>
112
113         <li>-disable-preopt      
114         <br>
115         Disable optimizations prior to instruction selection.
116         <p>
117
118         <li>-disable-sched       
119         <br>
120         Disable local scheduling pass.
121         <p>
122
123         <li>-disable-strip       
124         <br>
125         Do not strip the LLVM bytecode included in executable.
126         <p>
127
128         <li>-enable-maps         
129         <br>
130         Emit LLVM-to-MachineCode mapping info to assembly.
131         <p>
132
133         <li>-f                   
134         <br>
135         Overwrite output files
136         <p>
137
138         <li>-load=&lt;plugin.so&gt;
139         <br>
140         Load the specified plugin.
141         <p>
142
143         <li>-m&lt;arch&gt;
144         <br>
145         Specify the architecture for which to generate assembly.  Valid
146         architectures are:
147
148         <dl compact>
149                 <di> x86               
150                 <dd>
151                 IA-32 (Pentium and above)
152                 <p>
153
154                 <di> sparc             
155                 <dd>SPARC V9
156         </dl>
157         <p>
158
159         <li>-o &lt;filename&gt;
160         <br>
161         Specify the output filename.
162         <p>
163
164         <li>-print-machineinstrs 
165         <br>
166         Print generated machine code.
167         <p>
168
169         <li> -help
170         <br>
171         Print a summary of command line options.
172         <p>
173
174         <li> -stats
175         <br>
176         Print statistics.
177         <p>
178
179         <li> -time-passes
180         <br>
181         Record the amount of time needed for each pass and print it to standard
182         error.
183         <p>
184 </ul>
185
186 <h3>
187 EXIT STATUS
188 </h3>
189
190 If llc succeeds, it will exit with 0.  Otherwise, if an error occurs, it
191 will exit with a non-zero value.
192
193 <h3>
194 SEE ALSO
195 </h3>
196 llvm-dis, lli
197
198 <HR>
199 <a href="http://llvm.cs.uiuc.edu">LLVM Team</a>
200 </body>
201 </html>
202