User`s guide

MACRO Compiler Qualifiers
MACRO/MIGRATION
The options are:
Option Description
[NO]PEEPHOLE Peephole optimization
[NO]SCHEDULE Code scheduling
[NO]ADDRESSES Common base address loading
[NO]REFERENCES Common data referencing
[NO]VAXREGS OpenVMS Alpha systems only: Allow the use of VAX
registers (R0 through R12) as temporary registers when
they appear to be unused
ALL All optimizations
NONE No optimizations
Note that, on OpenVMS Alpha systems, /OPTIMIZE=ALL turns on VAXREGS,
which may generate incorrect code unless all register usage of all routines in the
module have been correctly declared.
/PRESERVE[=(option[,...])]
/NOPRESERVE (default)
Directs the compiler to generate special OpenVMS Alpha or OpenVMS I64
code throughout a module for all VAX MACRO instructions that rely on VAX
guarantees of operation atomicity or granularity. (See Section 2.11.)
The options are:
Option Description
GRANULARITY Preserves the rules of VAX granularity of writes.
Specifying /PRESERVE=GRANULARITY causes the
compiler to use Alpha Load-locked and Store-conditional
instruction sequences or the Itanium compare-exchange
(cmpxchg) instruction in code it generates for VAX
instructions that perform byte, word, or unaligned
longword writes.
ATOMICITY Preserves atomicity of VAX modify operations.
Specifying /PRESERVE=ATOMICITY causes the
compiler to use Alpha Load-locked and Store-conditional
instruction sequences or the Itanium compare-exchange
(cmpxchg) instruction in code it generates for VAX
instructions with modify operands.
/PRESERVE and /PRESERVE=(GRANULARITY,ATOMICITY) are equivalent.
When preservation of both granularity and atomicity is enabled, and the compiler
encounters a VAX coding construct that requires both granularity and atomicity
guarantees, it enforces atomicity over granularity.
If you are aware of specific sections of VAX MACRO code that require VAX
granularity and atomicity guarantees, you may not need the compiler to enforce
these guarantees for the entire module. Instead, you can use the .PRESERVE
and .NOPRESERVE directives (see Appendix B) to apply the guarantees only to
those sections. Because the compiler does not need to generate expanded code for
the entire module, these these directives can help optimize the code.
A–8 MACRO Compiler Qualifiers