New HP Pascal/iX Features [ COMMUNICATOR 3000 MPE MPE/iX RELEASE 4.0 ] MPE/iX Communicators
COMMUNICATOR 3000 MPE MPE/iX RELEASE 4.0
New HP Pascal/iX Features
by Birgit Hofherr
Systems Technology Division
Large procedures cause the Optimizer to consume inordinate amounts of
virtual memory and CPU time. In order to improve that situation a change
has been made to the HP Pascal/iX compiler, version A.04.05. Any
procedure containing more than 500 basic blocks causes the Optimizer to
drop down to level 1 optimization for that procedure, and the following
warning is emitted:
Optdriver: ! basic blocks; dropping to level 1 optimization for ! (6059)
The following compiler directives are available in conjunction with this
new feature:
* $OPTIMIZE 'BASIC_BLOCKS <num>'$
This directive allows you to change the number of basic
blocks at which the optimizer drops down to level 1
optimization. <num> represents the number of basic blocks.
Note that this directive implicitly requests optimization
at level 2.
* $OPTIMIZE 'BASIC_BLOCKS 0'$
In order to retain the old behavior, to optimize at level 2
and to disable the basic block feature completely, this
directive should be used.
Note that 0 has a special meaning and does not mean 0 basic
blocks.
* $OPTIMIZE 'BASIC_BLOCK_FENCE <num>'$
To change the default level (500) at which the Optimizer
drops down to level 1 optimization, specify that number as
<num>.
This directive does not request optimization; it only says
that when level 2 optimization is requested, change the
default level at which the optimizer drops down to level 1.
* $OPTIMIZE 'BASIC_BLOCK_FENCE 0'$
This directive completely disables the $BASIC_BLOCKS$
feature, dropping from level 2 to level 1. This means that
when level 2 optimization is requested, the old level 2 is
available, that is no dropping from level 2 to level 1.
Note that 0 has a special meaning in this case and does not
mean 0 basic blocks.
The HP Pascal/iX compiler now looks for a system-wide file called
PASCNTL.PUB.SYS. If it exists and is not empty, the compiler opens and
reads the file. This file should contain only directives and comments.
Anything else causes the compiler to emit the error message "Only
comments and directives are allowed in PASCNTL.PUB.SYS' (045)". This
file need not contain anything at all, in which case the compiler will
not even attempt to open it. However, if the system administrator deems
it necessary to add some compiler directives to PASCNTL.PUB.SYS, the
compiler processes these directives before anything else, even the
info string. Therefore, the user can override the directives in
PASCNTL.PUB.SYS because later options take precedence over earlier
options.
PASCNTL.PUB.SYS is overwritten when updating to a new release, since an
empty file is always shipped with a release. File equations can be used
to redirect to another file.
MPE/iX Communicators