User`s guide
Compiler Directives and Assertions [C]
#pragma mta debug level [0|1|2|default|none]
Set the debug level to the integer constant 0, 1, or 2, or to no
debugging by specifying none. Or, set the debug level back to the
level provided on the command line by specifying default. This
directive overrides the -g , -g1 , and -g2 compiler flags. However,
this directive does not affect any function that contains a call to
setjmp or sigsetjmp, which is always compiled as if the -g2
option was specified. This directive has function-level granularity
and affects any functions whose beginning follows the directive. This
directive applies to whatever follows it textually in the current file.
It stays in effect until the end of the file or until another directive
of the same kind is encountered.
#pragma mta fence
This directive specifies a boundary in the source code across which
the compiler is not allowed to move loads or stores of any aggregate
or heap allocated variables. The effect of this directive is to limit the
compiler's ability to move statements that have been marked with a
fence directive. This directive is often used to prevent the compiler
from moving calls to timing functions with respect to the code being
timed, as in the following example.
#pragma mta fence
t0 = mta_get_clock(0);
/* interval of interest */
......
#pragma mta fence
t1 = mta_get_clock(t0);
This directive may prevent some compiler optimizations from being
performed.
S–2479–20 111