1.2.58 $OPTIMIZATION : Enable Optimizations

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 as if they were passed using the -Oo command line option. The optimizations must be separated by commas.

The following strings are supported:

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
ORDERFIELDS
Reorder fields if this results in better alignment.
FASTMATH
Fast math operations
REMOVEEMPTYPROCS
remove calls to empty procedures.
CSE
Use common subexpression elimination
DFA
Use DFA (Data Flow Analysis).

You can disable a certain optimization by prefixing the value with NO.

Example:

{$OPTIMIZATION ON}

is equivalent to

{$OPTIMIZATION LEVEL2}

Multiple optimizations can be specified with:

{$OPTIMIZATION REGVAR,SIZE,LEVEL2}

Dusable loop unrolling with:

{$OPTIMIZATION NOLOOPUNROLL}

This switch is also activated by the -Ooxxx command line switch. Note the small ’o’: it is -Oo followed by the switch name.