HP Pascal/iX Reference Manual (31502-90022)

12- 11
NOTHING The optimizer assumes nothing, overriding any
previous assumptions.
PASCAL_FEATURES The optimizer assumes that routines are defined
and called with Pascal features only.
PASCAL_FEATURES implies PASCAL_POINTERS,
PARM_TYPES_MATCH, NO_PARM_ADDRESSED, and
LOCAL_ESCAPES_ONLY.
PASCAL_POINTERS The optimizer assumes that no operation except
the function
new
creates a pointer, and no
operation except an assignment statement
modifies its value. This precludes the
functions
addr
,
addtopointer
, and
buildpointer
,
type coercing to a pointer type, and reference
parameters and function return values that
violate the assumption. PASCAL_POINTERS
implies NO_PARM_ADDRESSED.
NO_PARM_ADDRESSED The optimizer assumes that no reference
parameter is passed to the function
addr
.
PARM_TYPES_MATCH The optimizer assumes that every formal
reference parameter and its corresponding
actual parameter are of the same type; that is,
no actual parameter is type-coerced (except in
the case of ANYVAR parameters).
NO_PARMS_OVERLAP The optimizer assumes that the actual
parameters passed to the formal reference
parameters do not overlap; that is, two formal
parameters do not get the same actual parameter
or the same field of a record. (This is always
true if the scope defines only one reference
parameter.) NO_PARMS_OVERLAP has no effect
without LOCAL_ACCESSES_ONLY.
LOCAL_GOTOS_ONLY The optimizer assumes that no routine jumps to
a label in a surrounding scope.
LOCAL_ACCESSES_ONLY The optimizer assumes that only parameters and
local variables are accessed or modified
(directly or indirectly). Input, output, and
global and nonlocal variables are not accessed
or modified. LOCAL_ACCESSES_ONLY implies
NO_SIDE_EFFECTS.
NO_SIDE_EFFECTS The optimizer assumes that only parameters and
local variables are modified (directly or
indirectly). Input, output, and global and
nonlocal variables are not modified (but they
can be accessed). NO_SIDE_EFFECTS implies
NO_HEAP_CHANGES.
NO_HEAP_CHANGES The optimizer assumes that no item currently on
the heap is modified (but it can be accessed).
NORMAL_RETURN The optimizer assumes that routines are exited
only in the normal way. NORMAL_RETURN implies
LOCAL_GOTOS_ONLY and LOCAL_ESCAPES_ONLY.
LOCAL_ESCAPES_ONLY The optimizer assumes that no routine escapes
to a calling routine; that is, all calls to the
predefined procedure
escape
are within
TRY-RECOVER constructs.
FLOAT_TRAPS_ON The optimizer assumes that the IEEE floating
point traps are on and does not move loop