From: Sylvestre Ledru Date: Mon, 11 Nov 2013 19:04:47 +0000 (+0000) Subject: Improve the documentation of the optimization flags X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3990d7f77cd8f4ac77e2380104520db4d097fcff;p=clang Improve the documentation of the optimization flags Reviewers: rafael.espindola, rengolin, hfinkel Reviewed By: rengolin CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2138 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194405 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/tools/clang.pod b/docs/tools/clang.pod index d2394a84a5..3176f88d72 100644 --- a/docs/tools/clang.pod +++ b/docs/tools/clang.pod @@ -7,7 +7,7 @@ clang - the Clang C, C++, and Objective-C compiler =head1 SYNOPSIS B [B<-c>|B<-S>|B<-E>] B<-std=>I B<-g> - [B<-O0>|B<-O1>|B<-O2>|B<-Os>|B<-Oz>|B<-O3>|B<-Ofast>|B<-O4>] + [B<-O0>|B<-O1>|B<-O2>|B<-O3>|B<-Ofast>|B<-Os>|B<-Oz>|B<-O>|B<-O4>] B<-W>I B<-pedantic> B<-I>I B<-L>I B<-D>I @@ -263,20 +263,56 @@ may not exist on earlier ones. =over -=item B<-O0> B<-O1> B<-O2> B<-Os> B<-Oz> B<-O3> B<-Ofast> B<-O4> - -Specify which optimization level to use. B<-O0> means "no optimization": this -level compiles the fastest and generates the most debuggable code. B<-O2> is a -moderate level of optimization which enables most optimizations. B<-Os> is like -B<-O2> with extra optimizations to reduce code size. B<-Oz> is like B<-Os> -(and thus B<-O2>), but reduces code size further. B<-O3> is like B<-O2>, -except that it enables optimizations that take longer to perform or that may -generate larger code (in an attempt to make the program run faster). -B<-Ofast> enables all the optimizations from B<-O3> along with other aggressive -optimizations that may violate strict compliance with language standards. On -supported platforms, B<-O4> enables link-time optimization; object files are -stored in the LLVM bitcode file format and whole program optimization is done at -link time. B<-O1> is somewhere between B<-O0> and B<-O2>. +=item B<-O0> B<-O1> B<-O2> B<-O3> B<-Ofast> B<-Os> B<-Oz> B<-O> B<-O4> + +Specify which optimization level to use: + +=over + +=item B<-O0> + +Means "no optimization": this level compiles the fastest and +generates the most debuggable code. + +=item B<-O1> + +Somewhere between B<-O0> and B<-O2>. + +=item B<-O2> + +Moderate level of optimization which enables most optimizations. + +=item B<-O3> + +Like B<-O2>, except that it enables optimizations that take longer to perform +or that may generate larger code (in an attempt to make the program run faster). + +=item B<-Ofast> + +Enables all the optimizations from B<-O3> along with other aggressive +optimizations that may violate strict compliance with language standards. + +=item B<-Os> + +Like B<-O2> with extra optimizations to reduce code size. + +=item B<-Oz> + +Like B<-Os> (and thus B<-O2>), but reduces code size further. + +=item B<-O> + +Equivalent to B<-O2>. + +=item B<-O4> + +Equivalent to B<-O3>. + +=item B<-O5> and upper + +Fall back on B<-O3>. + +=back =item B<-g>