blob: e71c24c5998de3dda5c296e42a81fdfc70c5343b [file] [log] [blame]
John Criswellecf32e52003-09-11 19:58:03 +00001<html>
Chris Lattner26814d02003-10-07 20:17:24 +00002<title>LLVM: opt tool</title>
John Criswellecf32e52003-09-11 19:58:03 +00003
Chris Lattner08a04fd2003-10-07 20:12:05 +00004<body bgcolor=white>
John Criswellecf32e52003-09-11 19:58:03 +00005
Chris Lattner26814d02003-10-07 20:17:24 +00006<center><h1>LLVM: <tt>opt</tt> tool</h1></center>
John Criswellecf32e52003-09-11 19:58:03 +00007<HR>
8
Chris Lattner26814d02003-10-07 20:17:24 +00009<h3>NAME</h3>
10<tt>opt</tt>
John Criswellecf32e52003-09-11 19:58:03 +000011
Chris Lattner26814d02003-10-07 20:17:24 +000012<h3>SYNOPSIS</h3>
13<tt>opt [options] [filename]</tt>
John Criswellecf32e52003-09-11 19:58:03 +000014
Chris Lattner26814d02003-10-07 20:17:24 +000015<h3>DESCRIPTION</h3>
John Criswellecf32e52003-09-11 19:58:03 +000016
Chris Lattner26814d02003-10-07 20:17:24 +000017The <tt>opt</tt> command is the modular LLVM optimizer. It takes LLVM bytecode
18as input, runs the specified optimizations on it, and then outputs the optimized
19LLVM bytecode.
John Criswell62435342003-09-26 16:32:00 +000020<p>
John Criswellecf32e52003-09-11 19:58:03 +000021
Chris Lattner26814d02003-10-07 20:17:24 +000022The optimizations available via <tt>opt</tt> depend upon what libraries were
23linked into it as well as any additional libraries that have been loaded with
24the <tt>-load</tt> option. Use the <tt>-help</tt> option to determine what
25optimizations you can use.
John Criswell62435342003-09-26 16:32:00 +000026<p>
John Criswellecf32e52003-09-11 19:58:03 +000027
Chris Lattner26814d02003-10-07 20:17:24 +000028If no filename is specified on the command line, <tt>opt</tt> reads its input
29from standard input.
John Criswell62435342003-09-26 16:32:00 +000030<p>
31
Chris Lattner26814d02003-10-07 20:17:24 +000032If an output filename is not specified with the <tt>-o</tt> option, <tt>opt</tt>
33writes its output to the standard output.
34
35
36<h3>OPTIONS</h3>
John Criswellecf32e52003-09-11 19:58:03 +000037
38<ul>
39 <li> -f
40 <br>
Chris Lattner26814d02003-10-07 20:17:24 +000041 Force overwrite. Normally, <tt>opt</tt> will refuse to overwrite an
42 output file that already exists. With this option, <tt>opt</tt> will
43 overwrite the output file and replace it with new bytecode.
John Criswellecf32e52003-09-11 19:58:03 +000044 <p>
45
46 <li> -help
47 <br>
48 Print a summary of command line options.
49 <p>
50
51 <li> -o &lt;filename&gt;
52 <br>
53 Specify the output filename.
54 <p>
55
56 <li> -stats
57 <br>
58 Print statistics.
59 <p>
60
61 <li> -time-passes
62 <br>
63 Record the amount of time needed for each pass and print it to standard
64 error.
65 <p>
66
Chris Lattnera2a628f2003-10-07 16:33:42 +000067 <li> -debug
68 <br>
69 If this is a debug build, this option will enable debug printouts from
70 passes which use the <tt>DEBUG</tt> macro. See the <a
71 href="../ProgrammersManual.html#DEBUG">Programmer's Manual</a> for more
72 information.
73 <p>
74<!--
John Criswellecf32e52003-09-11 19:58:03 +000075 <li> -internalize-public-api-file &lt;filename&gt;
76 <br>
77 Preserve the symbol names listed in the file filename.
78 <p>
79
80 <li> -internalize-public-api-list=&lt;list&gt;
81 <br>
82 Perserve the symbol names specified.
83 <p>
Chris Lattnera2a628f2003-10-07 16:33:42 +000084-->
John Criswellecf32e52003-09-11 19:58:03 +000085
86 <li> -q
87 <br>
88 Quiet mode. Do not print messages on whether the program was modified.
89 <p>
90
91 <li> -load &lt;plugin.so&gt;
92 <br>
93 Load the dynamic object plugin.so. This object should register new
94 optimization passes. Once loaded, the object will add new command line
95 options to enable various optimizations. To see the new complete list
96 of optimizations, use the -help and -load options together:
97 <p>
Chris Lattner26814d02003-10-07 20:17:24 +000098 <tt>opt -load &lt;plugin.so&gt; -help</tt>
John Criswellecf32e52003-09-11 19:58:03 +000099 <p>
100
101 <li> -p
102 <br>
103 Print module after each transformation.
104 <p>
105</ul>
106
Chris Lattner26814d02003-10-07 20:17:24 +0000107<h3>EXIT STATUS</h3>
John Criswellecf32e52003-09-11 19:58:03 +0000108
Chris Lattner26814d02003-10-07 20:17:24 +0000109If <tt>opt</tt> succeeds, it will exit with 0. Otherwise, if an error occurs,
110it will exit with a non-zero value.
John Criswellecf32e52003-09-11 19:58:03 +0000111
Chris Lattner26814d02003-10-07 20:17:24 +0000112<h3>SEE ALSO</h3>
113
114<a href="analyze.html"><tt>analyze</tt></a>
John Criswellecf32e52003-09-11 19:58:03 +0000115
116<HR>
Chris Lattner08a04fd2003-10-07 20:12:05 +0000117Maintained by the <a href="http://llvm.cs.uiuc.edu">LLVM Team</a>.
John Criswellecf32e52003-09-11 19:58:03 +0000118</body>
119</html>
120