HP Pascal/iX Reference Manual (31502-90022)

12- 55
Syntax
{'LEVEL1' }
{'LEVEL2' }
$OPTIMIZE {'BASIC_BLOCKS
num
' }$
{'BASIC_BLOCKS_FENCE
num
'}
{ON }
{OFF }
Parameters
LEVEL1 The compiler compiles the program with level
one optimization.
LEVEL2 The compiler compiles the program with level
two optimization.
[REV BEG]
BASIC_BLOCKS
num
The compiler compiles the program with level
two optimization, but drops down to level
one for those procedures with more than
num
basic blocks.
BASIC_BLOCKS_FENCE
num
No optimization is requested but when it is,
the number of basic blocks at which the
compiler drops to level one is
num
.
[REV END]
ON The compiler compiles the program with level
two optimization.
OFF The compiler compiles the program without
optimization.
Default OFF.
Location Anywhere, but in order to be effective, it must be before
the place in the code where label declarations or
directives can appear.
Scope All following source code, until overridden by another
OPTIMIZE option.
Basic Blocks
[REV BEG]
A basic block is a sequence of code with a single entry point and a
single exit point. A basic block has no internal branches. Optimizing
procedures with a large number of basic blocks can take a long time and
use a large amount of virtual memory. Therefore, the compiler behaves
differently on large procedures, when optimizing at Level 2. Any
procedure containing more than 500 basic blocks causes the optimizer to
drop down to Level 1 optimization for that procedure. A warning is
emitted that states the name of the procedure and the number of basic
blocks it contains:[REV END]
Optdriver: <num> basic blocks; dropping to level 1 optimization for <proc>. (6059)
OPTIMIZE 'BASIC_BLOCKS num' Compiler Option
This option allows you to request Level 2 optimization and change the
number of basic blocks at which the optimizer drops down to Level 1
optimization.
Syntax
$OPTIMIZE 'BASIC_BLOCKS
num
'$