OPTIMIZATIONS
Function
-Ont[={%|&|*|+|-|/|0|1|7|8|9|?|^|a|b|c|d|e| f|h|i|l|m|n|o|p|q|r|s|t|u|v|w|||~}]
%: Disable mod optimization
&: Disable bit and optimization
*: Disable mul optimization
+: Disable plus optimization
-: Disable minus optimization
/: Disable div optimization
0: Disable and optimization
1: Disable or optimization
7: Disable extend optimization
8: Disable switch optimization
9: Disable assign optimization
?: Disable test optimization
a: Disable statement optimization
b: Disable constant folding optimization
c: Disable compare optimization
d: Disable binary operation optimization
e: Disable constant swap optimization
f: Disable condition optimization
g: Disable compare size optimization
h: Disable unary minus optimization
i: Disable address optimization
j: Disable transformations for inlining
l: Disable label optimization
m: Disable left shift optimization
n: Disable right shift optimization
o: Disable cast optimization
p: Disable cut optimization
q: Disable 16-32 compare optimization
r: Disable 16-32 relative optimization
s: Disable indirect optimization
t: Disable for optimization
u: Disable while optimization
v: Disable do optimization
w: Disable if optimization
^: Disable exor optimization
|: Disable bit or optimization
~: Disable bit neg optimization
Specifying -Ont with no arguments disables all optimizations
None
None
The Compiler contains a special optimizer which optimizes the internal tree data structure. This tree data structure holds the semantic of the program and represents the parsed statements and expressions.
This option disables the tree optimizer. Use this option for debugging and to force the Compiler to produce `straightforward' code. Note that the optimizations below are just examples for the classes of optimizations.
Using this option with the arguments below disables the optimizations.
-Ont=~ disables optimization of `~~i' into `i'
-Ont=| disables optimization of ` i|0xffff' into ` 0xffff'
-Ont=w disables optimization of ` if (1) i = 0;' into `i = 0;'
-Ont=v disables optimization of ` do ... while(0)' into `...'
-Ont=u disables optimization of ‘while (cond) break;' into ‘cond;', provided there are no labels within the 'while' statement list.
-Ont=t disables optimization of ` for(;;) ...' into ` while(1) ...'
-Ont=s disables optimization of ` *&i' into ` i'
-Ont=r disables optimization of ` L<=4' into 16-bit compares
-Ont=q disables reduction of long compares into int compares. For example:
if (uL == 0) optimizes into:
if ((int)(uL>>16) == 0 && (int)uL == 0)
-Ont=p disables optimization of ` (char)(long)i' into ` (char)i'
-Ont=o disables optimization of ` (short)(int)L' into ` (short)L' if short and int have the same size.
-Ont=n and -Ont=m disable optimization of shift optimizations (<<, >>, -Ont=n or -Ont= m):
Reduction of shift counts to unsigned char:
uL = uL1 >> uL2; optimizes into:
uL = uL1 >> (unsigned char)uL2;
Optimization of zero shift counts:
uL = uL1 >> 0; optimizes into:
uL = uL1;
Optimization of shift counts greater than the object to be shifted:
uL = uL1 >> 40; optimizes into:
uL = 0L;
Strength reduction for operations followed by a cut operation:
ch = uL1 * uL2; optimizes into:
ch = (char)uL1 * (char)uL2;
Replacing shift operations by load or store:
i = uL >> 16; optimizes into:
i = *(int *)(&uL);
Shift count reductions:
ch = uL >> 17; optimizes into:
ch = (*(char *)(&uL)+1)>>1;
Optimization of shift combined with binary and:
ch = (uL >> 25) & 0x10; optimizes into:
ch = ((*(char *)(&uL))>>1) & 0x10;
-Ont=l disables optimization removal of labels if not used
-Ont=i disables optimization of ` &*p' into ` p'
-Ont=j transforms the syntax tree into an equivalent form which allows more inlining cases. Enable inlining to use this option.
-Ont=h disables optimization of ` -(-i)' into ` i'
-Ont=f disables optimization of ` (a==0)' into ` (!a)'
-Ont=e disables optimization of ` 2*i' into ` i*2'
-Ont=d disables optimization of ` us & ui' into ` us& (unsigned short)ui'
-Ont=c disables optimization of ` if ((long)i)' into ` if (i)'
-Ont=b disables optimization of ` 3+7' into ` 10'
-Ont=a disables optimization of last statement in function if result is not used
-Ont=^ disables optimization of ` i^0' into ` i'
-Ont=? disables optimization of ` i = (int)(cond ? L1:L2);' into ` i = cond ? (int)L1:(int)L2;'
-Ont=9 disables optimization of ` i=i;'
-Ont=8 disables optimization of empty switch statement
-Ont=7 disables optimization of ` (long)(char)L' into ` L'
-Ont=1 disables optimization of ` a || 0' into ` a'
-Ont=0 disables optimization of ` a && 1' into ` a'
-Ont=/ disables optimization of ` a/1' into ` a'
-Ont=- disables optimization of ` a-0' into ` a'
-Ont=+ disables optimization of ` a+0' into ` a'
-Ont=* disables optimization of ` a*1' into ` a'
-Ont=& disables optimization of ` a&0' into ` 0'
-Ont=% disables optimization of ` a%1' into ` 0'
fibo.c -Ont