This switch enables optimization. It can have the following possible values:
-
ON
- Switches on optimizations, corresponding to level 2 optimizations.
-
OFF
- Switches of all kinds of optimizations.
-
DEFAULT
- Returns to default (i.e. command-line or config file) specified optimizations.
-
XYZ
- Parses the string and switches on the optimizations found in the string.
The following strings are supported:
-
LEVEL1
- Level 1 optimizations
-
LEVEL2
- Level 2 optimizations
-
LEVEL3
- Level 3 optimizations
-
REGVAR
- Use register variables.
-
UNCERTAIN
- Use uncertain optimizations.
-
SIZE
- Optimize for size.
-
STACKFRAME
- Skip stackframes.
-
PEEPHOLE
- Peephole optimizations.
-
ASMCSE
- Use common subexpression elimination at the assembler level.
-
LOOPUNROLL
- Unroll loops
-
TAILREC
- change tail recursion to regular while
-
CSE
- Use common subexpression elimination
-
DFA
- Use DFA.
Example:
{$O[6~PTIMIZATION ON}
is equivalent to
{$OPTIMIZATION 2}
This switch is also activated by the -Ooxxx command line switch. Note the small ’o’: it is -Oo
followed by the switch name.