<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!--Converted with LaTeX2HTML 2008 (1.71) original version by: Nikos Drakos, CBLU, University of Leeds * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --> <HTML> <HEAD> <TITLE>3.2.8 Optimization Options</TITLE> <META NAME="description" CONTENT="3.2.8 Optimization Options"> <META NAME="keywords" CONTENT="sdccman"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META NAME="Generator" CONTENT="LaTeX2HTML v2008"> <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> <LINK REL="STYLESHEET" HREF="sdccman.css"> <LINK REL="next" HREF="node54.html"> <LINK REL="previous" HREF="node52.html"> <LINK REL="up" HREF="node45.html"> <LINK REL="next" HREF="node54.html"> </HEAD> <BODY > <!--Navigation Panel--> <A NAME="tex2html1460" HREF="node54.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <A NAME="tex2html1454" HREF="node45.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <A NAME="tex2html1448" HREF="node52.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <A NAME="tex2html1456" HREF="node1.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <A NAME="tex2html1458" HREF="node191.html"> <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> <BR> <B> Next:</B> <A NAME="tex2html1461" HREF="node54.html">3.2.9 Other Options</A> <B> Up:</B> <A NAME="tex2html1455" HREF="node45.html">3.2 Command Line Options</A> <B> Previous:</B> <A NAME="tex2html1449" HREF="node52.html">3.2.7 GBZ80 Options</A> <B> <A NAME="tex2html1457" HREF="node1.html">Contents</A></B> <B> <A NAME="tex2html1459" HREF="node191.html">Index</A></B> <BR> <BR> <!--End of Navigation Panel--> <H2><A NAME="SECTION00428000000000000000"></A><A NAME="1049"></A><A NAME="1050"></A> <BR> 3.2.8 Optimization Options </H2> <UL> <LI>[<B>--nogcse<A NAME="1053"></A></B>] Will not do global subexpression elimination, this option may be used when the compiler creates undesirably large stack/data spaces to store compiler temporaries (<I>s</I>pill <I>loc</I>ations, sloc<A NAME="1056"></A>). A warning message will be generated when this happens and the compiler will indicate the number of extra bytes it allocated. It is recommended that this option NOT be used, #pragma nogcse<A NAME="1057"></A> can be used to turn off global subexpression elimination<A NAME="1058"></A> for a given function only. </LI> <LI>[<B>--noinvariant<A NAME="1059"></A></B>] Will not do loop invariant optimizations, this may be turned off for reasons explained for the previous option. For more details of loop optimizations performed see Loop Invariants in section <A HREF="node173.html#sub:Loop-Optimizations">8.1.4</A>. It is recommended that this option NOT be used, #pragma noinvariant<A NAME="1061"></A> can be used to turn off invariant optimizations for a given function only. </LI> <LI>[<B>--noinduction<A NAME="1062"></A></B>] Will not do loop induction optimizations, see section strength reduction for more details. It is recommended that this option is NOT used, #pragma noinduction<A NAME="1063"></A> can be used to turn off induction optimizations for a given function only. </LI> <LI>[<B>--nojtbound<A NAME="1064"></A></B>] Will not generate boundary condition check when switch statements<A NAME="1065"></A> are implemented using jump-tables. See section <A HREF="node176.html#sub:_switch_-Statements">8.1.7</A> Switch Statements for more details. It is recommended that this option is NOT used, #pragma nojtbound<A NAME="1067"></A> can be used to turn off boundary checking for jump tables for a given function only. </LI> <LI>[<B>--noloopreverse<A NAME="1068"></A></B>] Will not do loop reversal <A NAME="1069"></A>optimization. </LI> <LI>[--<B>nolabelopt</B>] <A NAME="1071"></A>Will not optimize labels (makes the dumpfiles more readable). </LI> <LI>[<B>--no-xinit-opt<A NAME="1072"></A></B>] Will not memcpy initialized data from code space into xdata space. This saves a few bytes in code space if you don't have initialized data<A NAME="1073"></A>. </LI> <LI>[<B>--nooverlay<A NAME="1074"></A></B>] The compiler will not overlay parameters and local variables of any function, see section Parameters and local variables for more details. </LI> <LI>[<B>--no-peep<A NAME="1075"></A></B>] Disable peep-hole optimization with built-in rules. </LI> <LI>[<B>--peep-file</B><A NAME="1077"></A> <filename>] This option can be used to use additional rules to be used by the peep hole optimizer. See section <A HREF="node182.html#sub:Peephole-Optimizer">8.1.13</A> Peep Hole optimizations for details on how to write these rules. </LI> <LI>[<B>--peep-asm<A NAME="1079"></A></B>] Pass the inline assembler code through the peep hole optimizer. This can cause unexpected changes to inline assembler code, please go through the peephole optimizer<A NAME="1080"></A> rules defined in the source file tree '<target>/peeph.def' before using this option. </LI> <LI>[<B>--opt-code-speed<A NAME="1081"></A></B>] The compiler will optimize code generation towards fast code, possibly at the expense of code size. </LI> <LI>[<B>--opt-code-size<A NAME="1082"></A></B>] The compiler will optimize code generation towards compact code, possibly at the expense of code speed. </LI> </UL> <P><P> <BR> <P> <HR> <!--Navigation Panel--> <A NAME="tex2html1460" HREF="node54.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <A NAME="tex2html1454" HREF="node45.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <A NAME="tex2html1448" HREF="node52.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <A NAME="tex2html1456" HREF="node1.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <A NAME="tex2html1458" HREF="node191.html"> <IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> <BR> <B> Next:</B> <A NAME="tex2html1461" HREF="node54.html">3.2.9 Other Options</A> <B> Up:</B> <A NAME="tex2html1455" HREF="node45.html">3.2 Command Line Options</A> <B> Previous:</B> <A NAME="tex2html1449" HREF="node52.html">3.2.7 GBZ80 Options</A> <B> <A NAME="tex2html1457" HREF="node1.html">Contents</A></B> <B> <A NAME="tex2html1459" HREF="node191.html">Index</A></B> <!--End of Navigation Panel--> <ADDRESS> 2011-03-20 </ADDRESS> </BODY> </HTML>