[Compbench-devel] CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x arch.xml, 1.1, 1.2 cse.xm
Brought to you by:
xfred
Update of /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv7995 Modified Files: arch.xml cse.xml description.xml inline.xml loops.xml mainopt.xml Makefile.am Removed Files: options.xml Log Message: CEL obsoleted. Logic is integrated within descriptions. --- options.xml DELETED --- Index: inline.xml =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x/inline.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** inline.xml 20 Mar 2007 20:33:16 -0000 1.1 --- inline.xml 12 Apr 2007 16:50:36 -0000 1.2 *************** *** 9,54 **** --> ! <!-- inlining related options for gxx --> ! <!-- included by gxx/options.xml --> ! <cel> ! <!-- inline-functions --> ! <cel-function-def> ! <cel-str>kb-gxx-option-inline-functions-is-compatible</cel-str> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O3</cel-str> ! </cel-cmp-eq> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-str>option implied by -O3</cel-str> ! </cel-var-set> ! </cel-cond-if> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! </cel-function-def> ! <!-- Not integrated (seem useless for optimizations measurement : --> ! <!-- keep-inline-functions --> ! <!-- no-default-inline --> ! </cel> \ No newline at end of file --- 9,32 ---- --> ! <!-- Inlining option for 'gxx' (includes gcc and g++) --> ! <options> ! <option id="inline-functions"> ! <value>-finline-functions</value> ! <short-description>Integrate all simple functions into their callers</short-description> ! <editor-description> ! Integrate all simple functions into their callers. The compiler ! heuristically decides which functions are simple enough to be ! worth integrating in this way. ! If all calls to a given function are integrated, and the function ! is declared static, then GCC normally does not output the ! function as assembler code in its own right. ! </editor-description> ! <logic> ! <logic-option-implied-by id="O3"/> ! </logic> ! </option> ! </options> \ No newline at end of file Index: arch.xml =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x/arch.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** arch.xml 20 Mar 2007 20:33:14 -0000 1.1 --- arch.xml 12 Apr 2007 16:50:36 -0000 1.2 *************** *** 9,67 **** --> ! <!-- Architecture related options for gxx --> ! <!-- included by gxx/options.xml --> ! <!-- !!! Should check real platform architecture in matches --> ! <cel> - <!-- m486 --> - <cel-function-def> - <cel-str>kb-gxx-option-m486-is-compatible</cel-str> - <cel-var-set> - <cel-str>result</cel-str> - <cel-function-call> - <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> - </cel-function-call> - </cel-var-set> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-block> ! <cel-stack-push> ! <cel-str>kb-option-cpu</cel-str> ! </cel-stack-push> ! <cel-stack-push> ! <cel-str>-m486</cel-str> ! </cel-stack-push> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-common-option-apply</cel-str> ! </cel-function-call> ! </cel-var-set> ! </cel-block> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! </cel-function-def> ! ! <!-- no-fp-ret-in-387 --> ! <cel-function-def> ! <cel-str>kb-gxx-option-no-fp-ret-in-387-is-compatible</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-function-def> ! <!-- Not integrated (seem useless for optimizations measurement) : --> ! <!-- -msoft-float --> ! </cel> --- 9,41 ---- --> ! <!-- Architecture related options for 'gxx' (includes gcc and g++) --> ! <options> ! <option id="m486"> ! <value>-m486</value> ! <short-description>Generate i486 optimized code</short-description> ! <editor-description> ! Control whether or not code is optimized for a 486 instead of an ! 386. Code generated for a 486 will run on a 386 and vice versa. ! </editor-description> ! </option> ! <option id="no-fp-ret-in-387"> ! <value>-fno-fp-ret-in-387</value> ! <short-description>Do not use FPU to return values</short-description> ! <editor-description> ! Do not use the FPU registers for return values of functions. ! The usual calling convention has functions return values of ! types float and double in an FPU register, even if there is no ! FPU. The idea is that the operating system should emulate an ! FPU. ! The option `-mno-fp-ret-in-387' causes such values to be ! returned in ordinary CPU registers instead. ! </editor-description> ! </option> ! </options> \ No newline at end of file Index: description.xml =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x/description.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** description.xml 11 Apr 2007 20:22:29 -0000 1.2 --- description.xml 12 Apr 2007 16:50:36 -0000 1.3 *************** *** 11,116 **** <!-- Options for 'gxx' (includes gcc and g++) --> - <!-- cel-interface is gxx/options.xml by default and should - be evaluated --> - <!-- globaly; that's the default since all compilers'll have their --> - <!-- own descriptions --> - <options> ! <!-- ! <include file="common/common.xml" type="cel"/> ! --> ! <option id="O0"> ! <value>-O0</value> ! <short-description>Globally disable compiler optimization</short-description> ! <editor-description> ! Do not optimize. This is the default ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! </logic> ! </option> ! ! <option id="Os"> ! <value>-Os</value> ! <short-description>Globally optimize for size</short-description> ! <editor-description> ! Optimize for size. -Os enables all -O2 optimizations that do not typically ! increase code size. It also performs further optimizations designed to ! reduce code size. ! ! -Os disables the following optimization flags: -falign-functions ! -falign-jumps -falign-loops -falign-labels -freorder-blocks ! -fprefetch-loop-arrays ! ! If you use multiple -O options, with or without level numbers, the last ! such option is the one that is effective. ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! <logic-flag-set id="alignment-disabled" value="1"/> ! </logic> ! </option> ! ! <option id="O1"> ! <value>-O1</value> ! <short-description>Global optimization, level 1</short-description> ! <editor-description> ! Optimize. Optimizing compilation takes somewhat more time, and ! a lot more memory for a large function. ! ! Without `-O', the compiler's goal is to reduce the cost of ! compilation and to make debugging produce the expected results. ! Statements are independent: if you stop the program with a ! breakpoint between statements, you can then assign a new value ! to any variable or change the program counter to any other ! statement in the function and get exactly the results you would ! expect from the source code. ! ! Without `-O', only variables declared register are allocated in ! registers. The resulting compiled code is a little worse than ! produced by PCC without `-O'. ! ! With `-O', the compiler tries to reduce code size and execution ! time. ! ! When you specify `-O', the two options `-fthread-jumps' and ! `-fdefer-pop' are turned on. On machines that have delay slots, ! the `-fdelayed-branch' option is turned on. For those machines ! that can support debugging even without a frame pointer, the ! `-fomit-frame-pointer' option is turned on. On some machines ! other flags may also be turned on. ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! <logic-flag-set id="alignment-disabled" value="0"/> ! </logic> ! </option> ! ! <option id="O2"> ! <value>-O2</value> ! <short-description>Global optimization, level 2</short-description> ! <editor-description> ! Optimize even more than -O1. Nearly all supported optimizations that ! do not involve a space-speed tradeoff are performed. Loop unrolling ! and function inlining are not done, for example. As compared to -O, this ! option increases both compilation time and the performance of the ! generated code. ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! </logic> ! </option> ! ! <option id="O3"> ! <value>-O3</value> ! <short-description>Global optimization, level 3</short-description> ! <editor-description> ! Optimize yet more. This turns on everything -O2 does, along with also ! turning on -finline-functions. ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! </logic> ! </option> <option id="caller-save"> --- 11,20 ---- <!-- Options for 'gxx' (includes gcc and g++) --> <options> ! <include file="gxx/2.95.x/mainopt.xml"/> ! <include file="gxx/2.95.x/arch.xml"/> ! <include file="gxx/2.95.x/cse.xml"/> ! <include file="gxx/2.95.x/inline.xml"/> ! <include file="gxx/2.95.x/loops.xml"/> <option id="caller-save"> *************** *** 129,163 **** </option> - <option id="cse-follow-jumps"> - <value>-fcse-follow-jumps</value> - <short-description>Always scan through jump instructions in common subexpression elimination</short-description> - <editor-description> - In common subexpression elimination, scan through jump instructions - when the target of the jump is not reached by any other - path. For example, when CSE encounters an if statement with an else - clause, CSE will follow the jump when the condition tested - is false. - </editor-description> - <logic> - <logic-option-implied-by id="O2"/> - <logic-option-implied-by id="O3"/> - </logic> - </option> - <option id="cse-skip-blocks"> - <value>-fcse-skip-blocks</value> - <short-description>Always scan through conditionnal jump instructions in common subexpression elimination</short-description> - <editor-description> - This is similar to `-fcse-follow-jumps', but causes CSE to follow - jumps which conditionally skip over blocks. When CSE encounters - a simple if statement with no else clause, - `-fcse-skip-blocks' causes CSE to follow the jump around the - body of the if. - </editor-description> - <logic> - <logic-option-implied-by id="O2"/> - <logic-option-implied-by id="O3"/> - </logic> - </option> <option id="delayed-branch"> --- 33,37 ---- *************** *** 254,274 **** </option> - <option id="inline-functions"> - <value>-finline-functions</value> - <short-description>Integrate all simple functions into their callers</short-description> - <editor-description> - Integrate all simple functions into their callers. The compiler - heuristically decides which functions are simple enough to be - worth integrating in this way. - - If all calls to a given function are integrated, and the function - is declared static, then GCC normally does not output the - function as assembler code in its own right. - </editor-description> - <logic> - <logic-option-implied-by id="O3"/> - </logic> - </option> - <option id="omit-frame-pointer"> <value>-fomit-frame-pointer</value> --- 128,131 ---- *************** *** 289,305 **** </option> - <option id="rerun-cse-after-loop"> - <value>-frerun-cse-after-loop</value> - <short-description>Re-run CSE after loop optimizations</short-description> - <editor-description> - Re-run common subexpression elimination after loop optimizations - has been performed. - </editor-description> - <logic> - <logic-option-implied-by id="O2"/> - <logic-option-implied-by id="O3"/> - </logic> - </option> - <option id="schedule-insns"> <value>-fschedule-insns</value> --- 146,149 ---- *************** *** 335,415 **** </option> - <option id="strength-reduce"> - <value>-fstrength-reduce</value> - <short-description>Loop optimizations</short-description> - <editor-description> - Perform the optimizations of loop strength reduction and - elimination of iteration variables. - </editor-description> - <logic> - <logic-option-implied-by id="O2"/> - <logic-option-implied-by id="O3"/> - </logic> - </option> - - <option id="thread-jumps"> - <value>-fthread-jumps</value> - <short-description>Jump shortcuts' detection</short-description> - <editor-description> - Perform optimizations where we check to see if a jump branches - to a location where another comparison subsumed by the first is - found. If so, the first branch is redirected to either the - destination of the second branch or a point immediately following - it, depending on whether the condition is known to be true or - false. - </editor-description> - <logic> - <logic-option-implied-by id="O2"/> - <logic-option-implied-by id="O3"/> - </logic> - </option> - - - <option id="unroll-all-loops"> - <value>-funroll-all-loops</value> - <short-description>Global loop unrolling optimization</short-description> - <editor-description> - Perform the optimization of loop unrolling. This is done for - all loops. This usually makes programs run more slowly. - </editor-description> - </option> - - - <option id="unroll-loops"> - <value>-funroll-loops</value> - <short-description>Loop unrolling optimizations</short-description> - <editor-description> - Perform the optimization of loop unrolling. This is only done - for loops whose number of iterations can be determined at com- - pile time or run time. - </editor-description> - </option> - - <option id="m486"> - <value>-m486</value> - <short-description>Generate i486 optimized code</short-description> - <editor-description> - Control whether or not code is optimized for a 486 instead of an - 386. Code generated for a 486 will run on a 386 and vice versa. - </editor-description> - </option> - - - <option id="no-fp-ret-in-387"> - <value>-fno-fp-ret-in-387</value> - <short-description>Do not use FPU to return values</short-description> - <editor-description> - Do not use the FPU registers for return values of functions. - - The usual calling convention has functions return values of - types float and double in an FPU register, even if there is no - FPU. The idea is that the operating system should emulate an - FPU. - - The option `-mno-fp-ret-in-387' causes such values to be - returned in ordinary CPU registers instead. - </editor-description> - </option> - <!-- <option id=""> --- 179,182 ---- Index: Makefile.am =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.am 22 Mar 2007 19:54:05 -0000 1.2 --- Makefile.am 12 Apr 2007 16:50:36 -0000 1.3 *************** *** 8,17 **** # ----------------------------------------------------------------------------- ! data_DATA = options.xml \ mainopt.xml \ ! arch.xml cse.xml \ ! inline.xml loops.xml \ ! description.xml ! datarootdir=@datarootdir@/compbenchmarks/@VERSION@/KB/gxx/2.95.x --- 8,17 ---- # ----------------------------------------------------------------------------- ! data_DATA = description.xml \ mainopt.xml \ ! arch.xml \ ! cse.xml \ ! inline.xml \ ! loops.xml datarootdir=@datarootdir@/compbenchmarks/@VERSION@/KB/gxx/2.95.x Index: loops.xml =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x/loops.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** loops.xml 20 Mar 2007 20:33:16 -0000 1.1 --- loops.xml 12 Apr 2007 16:50:36 -0000 1.2 *************** *** 9,121 **** --> ! <!-- Loop related options for gxx --> ! <!-- included by gxx/options.xml --> ! ! <cel> ! <!-- strength-reduce --> ! <cel-function-def> ! <cel-str>kb-gxx-option-strength-reduce-is-compatible</cel-str> ! ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-cond-if> ! <cel-logic-or> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O2</cel-str> ! </cel-cmp-eq> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O3</cel-str> ! </cel-cmp-eq> ! </cel-logic-or> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-str>option implied by -O2 and -O3</cel-str> ! </cel-var-set> ! </cel-cond-if> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! </cel-function-def> ! <!-- thread-jumps --> ! <cel-function-def> ! <cel-str>kb-gxx-option-thread-jumps-is-compatible</cel-str> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-cond-if> ! <cel-logic-or> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O2</cel-str> ! </cel-cmp-eq> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O3</cel-str> ! </cel-cmp-eq> ! </cel-logic-or> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-str>option implied by -O2 and -O3</cel-str> ! </cel-var-set> ! </cel-cond-if> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! </cel-function-def> - <!-- unroll-all-loops --> - <cel-function-def> - <cel-str>kb-gxx-option-unroll-all-loops-is-compatible</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-function-def> - <!-- unroll-loops --> - <cel-function-def> - <cel-str>kb-gxx-option-unroll-loops-is-compatible</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-function-def> ! </cel> \ No newline at end of file --- 9,66 ---- --> ! <!-- Loops' controling options for 'gxx' (includes gcc and g++) --> ! <options> ! <option id="strength-reduce"> ! <value>-fstrength-reduce</value> ! <short-description>Loop optimizations</short-description> ! <editor-description> ! Perform the optimizations of loop strength reduction and ! elimination of iteration variables. ! </editor-description> ! <logic> ! <logic-option-implied-by id="O2"/> ! <logic-option-implied-by id="O3"/> ! </logic> ! </option> ! <option id="thread-jumps"> ! <value>-fthread-jumps</value> ! <short-description>Jump shortcuts' detection</short-description> ! <editor-description> ! Perform optimizations where we check to see if a jump branches ! to a location where another comparison subsumed by the first is ! found. If so, the first branch is redirected to either the ! destination of the second branch or a point immediately following ! it, depending on whether the condition is known to be true or ! false. ! </editor-description> ! <logic> ! <logic-option-implied-by id="O2"/> ! <logic-option-implied-by id="O3"/> ! </logic> ! </option> ! <option id="unroll-all-loops"> ! <value>-funroll-all-loops</value> ! <short-description>Global loop unrolling optimization</short-description> ! <editor-description> ! Perform the optimization of loop unrolling. This is done for ! all loops. This usually makes programs run more slowly. ! </editor-description> ! </option> ! <option id="unroll-loops"> ! <value>-funroll-loops</value> ! <short-description>Loop unrolling optimizations</short-description> ! <editor-description> ! Perform the optimization of loop unrolling. This is only done ! for loops whose number of iterations can be determined at com- ! pile time or run time. ! </editor-description> ! </option> ! </options> \ No newline at end of file Index: mainopt.xml =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x/mainopt.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mainopt.xml 20 Mar 2007 20:33:16 -0000 1.1 --- mainopt.xml 12 Apr 2007 16:50:36 -0000 1.2 *************** *** 9,207 **** --> ! <!-- 'Main optimization' options for gxx --> ! <!-- included by gxx/options.xml --> ! ! <cel> ! <!-- Option related functions --> ! ! <!-- O0 --> ! <cel-function-def> ! <cel-str>kb-gxx-option-O0-is-compatible</cel-str> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-block> ! <cel-stack-push> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-stack-push> ! <cel-stack-push> ! <cel-str>-O0</cel-str> ! </cel-stack-push> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-common-option-apply</cel-str> ! </cel-function-call> ! </cel-var-set> ! </cel-block> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! </cel-function-def> ! ! <!-- Os --> ! <cel-function-def> ! <cel-str>kb-gxx-option-Os-is-compatible</cel-str> ! ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-block> ! <cel-stack-push> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-stack-push> ! <cel-stack-push> ! <cel-str>-Os</cel-str> ! </cel-stack-push> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-common-option-apply</cel-str> ! </cel-function-call> ! </cel-var-set> ! </cel-block> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! </cel-function-def> ! <!-- O1 --> ! <cel-function-def> ! <cel-str>kb-gxx-option-O1-is-compatible</cel-str> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-block> ! <cel-stack-push> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-stack-push> ! <cel-stack-push> ! <cel-str>-O1</cel-str> ! </cel-stack-push> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-common-option-apply</cel-str> ! </cel-function-call> ! </cel-var-set> ! </cel-block> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! </cel-function-def> ! <!-- O2 --> ! <cel-function-def> ! <cel-str>kb-gxx-option-O2-is-compatible</cel-str> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-block> ! <cel-stack-push> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-stack-push> ! <cel-stack-push> ! <cel-str>-O2</cel-str> ! </cel-stack-push> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-common-option-apply</cel-str> ! </cel-function-call> ! </cel-var-set> ! </cel-block> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! </cel-function-def> ! <!-- O3 --> ! <cel-function-def> ! <cel-str>kb-gxx-option-O3-is-compatible</cel-str> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-block> ! <cel-stack-push> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-stack-push> ! <cel-stack-push> ! <cel-str>-O3</cel-str> ! </cel-stack-push> ! <cel-var-set> ! <cel-str>result</cel-str> ! <cel-function-call> ! <cel-str>kb-common-option-apply</cel-str> ! </cel-function-call> ! </cel-var-set> ! </cel-block> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>result</cel-str> ! </cel-var-get> ! </cel-function-def> ! </cel> \ No newline at end of file --- 9,108 ---- --> ! <!-- Global optimization options for 'gxx' (includes gcc and g++) --> + <options> + <option id="O0"> + <value>-O0</value> + <short-description>Globally disable compiler optimization</short-description> + <editor-description> + Do not optimize. This is the default + </editor-description> + <logic> + <logic-option-exclusive on="kb-option-mainoptimization"/> + </logic> + </option> ! <option id="Os"> ! <value>-Os</value> ! <short-description>Globally optimize for size</short-description> ! <editor-description> ! Optimize for size. -Os enables all -O2 optimizations that do not typically ! increase code size. It also performs further optimizations designed to ! reduce code size. ! -Os disables the following optimization flags: -falign-functions ! -falign-jumps -falign-loops -falign-labels -freorder-blocks ! -fprefetch-loop-arrays ! If you use multiple -O options, with or without level numbers, the last ! such option is the one that is effective. ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! <logic-flag-set id="alignment-disabled" value="1"/> ! </logic> ! </option> ! <option id="O1"> ! <value>-O1</value> ! <short-description>Global optimization, level 1</short-description> ! <editor-description> ! Optimize. Optimizing compilation takes somewhat more time, and ! a lot more memory for a large function. ! Without `-O', the compiler's goal is to reduce the cost of ! compilation and to make debugging produce the expected results. ! Statements are independent: if you stop the program with a ! breakpoint between statements, you can then assign a new value ! to any variable or change the program counter to any other ! statement in the function and get exactly the results you would ! expect from the source code. ! Without `-O', only variables declared register are allocated in ! registers. The resulting compiled code is a little worse than ! produced by PCC without `-O'. ! With `-O', the compiler tries to reduce code size and execution ! time. ! When you specify `-O', the two options `-fthread-jumps' and ! `-fdefer-pop' are turned on. On machines that have delay slots, ! the `-fdelayed-branch' option is turned on. For those machines ! that can support debugging even without a frame pointer, the ! `-fomit-frame-pointer' option is turned on. On some machines ! other flags may also be turned on. ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! <logic-flag-set id="alignment-disabled" value="0"/> ! </logic> ! </option> ! ! <option id="O2"> ! <value>-O2</value> ! <short-description>Global optimization, level 2</short-description> ! <editor-description> ! Optimize even more than -O1. Nearly all supported optimizations that ! do not involve a space-speed tradeoff are performed. Loop unrolling ! and function inlining are not done, for example. As compared to -O, this ! option increases both compilation time and the performance of the ! generated code. ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! </logic> ! </option> ! <option id="O3"> ! <value>-O3</value> ! <short-description>Global optimization, level 3</short-description> ! <editor-description> ! Optimize yet more. This turns on everything -O2 does, along with also ! turning on -finline-functions. ! </editor-description> ! <logic> ! <logic-option-exclusive on="kb-option-mainoptimization"/> ! </logic> ! </option> ! </options> \ No newline at end of file Index: cse.xml =================================================================== RCS file: /cvsroot/compbench/CompBenchmarks++/libcompbenchmarks/share/KB/gxx/2.95.x/cse.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cse.xml 20 Mar 2007 20:33:14 -0000 1.1 --- cse.xml 12 Apr 2007 16:50:36 -0000 1.2 *************** *** 9,147 **** --> ! <!-- CSE (common subexpression elimination) related options for gxx --> ! <!-- included by gxx/options.xml --> ! ! <cel> ! <!-- cse-follow-jumps --> ! <cel-function-def> ! <cel-str>kb-gxx-option-cse-follow-jumps-is-compatible</cel-str> ! ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-cond-if> ! <cel-logic-or> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O2</cel-str> ! </cel-cmp-eq> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O3</cel-str> ! </cel-cmp-eq> ! </cel-logic-or> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-str>option implied by -O2 and -O3</cel-str> ! </cel-var-set> ! </cel-cond-if> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! </cel-function-def> ! ! ! <!-- cse-skip-blocks --> ! <cel-function-def> ! <cel-str>kb-gxx-option-cse-skip-blocks-is-compatible</cel-str> ! ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-cond-if> ! <cel-logic-or> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O2</cel-str> ! </cel-cmp-eq> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O3</cel-str> ! </cel-cmp-eq> ! </cel-logic-or> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-str>option implied by -O2 and -O3</cel-str> ! </cel-var-set> ! </cel-cond-if> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! </cel-function-def> ! <!-- rerun-cse-after-loop --> ! <cel-function-def> ! <cel-str>kb-gxx-option-rerun-cse-after-loop-is-compatible</cel-str> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-function-call> ! <cel-str>kb-gxx-option-gcc2.95-is-compatible</cel-str> ! </cel-function-call> ! </cel-var-set> ! <cel-cond-if> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! <cel-str>1</cel-str> ! </cel-cmp-eq> ! <cel-cond-if> ! <cel-logic-or> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O2</cel-str> ! </cel-cmp-eq> ! <cel-cmp-eq> ! <cel-var-get> ! <cel-str>kb-option-mainoptimization</cel-str> ! </cel-var-get> ! <cel-str>-O3</cel-str> ! </cel-cmp-eq> ! </cel-logic-or> ! <cel-var-set> ! <cel-str>return</cel-str> ! <cel-str>option implied by -O2 and -O3</cel-str> ! </cel-var-set> ! </cel-cond-if> ! </cel-cond-if> ! <cel-var-get> ! <cel-str>return</cel-str> ! </cel-var-get> ! </cel-function-def> ! </cel> \ No newline at end of file --- 9,59 ---- --> ! <!-- Common-Subexpression-Elimination options for 'gxx' (includes gcc and g++) --> ! <options> ! <option id="cse-follow-jumps"> ! <value>-fcse-follow-jumps</value> ! <short-description>Always scan through jump instructions in common subexpression elimination</short-description> ! <editor-description> ! In common subexpression elimination, scan through jump instructions ! when the target of the jump is not reached by any other ! path. For example, when CSE encounters an if statement with an else ! clause, CSE will follow the jump when the condition tested ! is false. ! </editor-description> ! <logic> ! <logic-option-implied-by id="O2"/> ! <logic-option-implied-by id="O3"/> ! </logic> ! </option> ! <option id="cse-skip-blocks"> ! <value>-fcse-skip-blocks</value> ! <short-description>Always scan through conditionnal jump instructions in common subexpression elimination</short-description> ! <editor-description> ! This is similar to `-fcse-follow-jumps', but causes CSE to follow ! jumps which conditionally skip over blocks. When CSE encounters ! a simple if statement with no else clause, ! `-fcse-skip-blocks' causes CSE to follow the jump around the ! body of the if. ! </editor-description> ! <logic> ! <logic-option-implied-by id="O2"/> ! <logic-option-implied-by id="O3"/> ! </logic> ! </option> ! <option id="rerun-cse-after-loop"> ! <value>-frerun-cse-after-loop</value> ! <short-description>Re-run CSE after loop optimizations</short-description> ! <editor-description> ! Re-run common subexpression elimination after loop optimizations ! has been performed. ! </editor-description> ! <logic> ! <logic-option-implied-by id="O2"/> ! <logic-option-implied-by id="O3"/> ! </logic> ! </option> ! </options> \ No newline at end of file |