User`s guide

Compiler Directives and Assertions [C]
In this case, the compiler is forced to choose one of two possible
implementations. To avoid ambiguity when control of rounding is
important, you should use a sequence of simpler assignments to make
the meaning clear. The scope of this directive is the entire source file.
The use of this directive overrides the
-no_mul_add compiler flag
and the #pragma mta fused muladd off directive.
#pragma mta trace [on|off|default]
Enables or disables tracing of functions or returns to the default
heuristic if trace default is used. In order to actually use the
tracing information, however, a compiler flag must be set. By default,
a heuristic is used to decide whether to trace a function based upon
its size. This directive remains in effect until end-of-file or until
overridden by another directive of the same type. This directive
affects any function whose beginning follows the directive textually
in the current file.
#pragma mta trace level [int-const]
This directive enables the tracing of functions that contain at least
int-const lines, and disables the tracing of functions that contain
fewer lines. This directive is disabled unless either the -trace or
-trace_level option was specified on the command line. But
after it is enabled, this directive takes precedence over the -trace
and -trace_level command-line options. This directive remains
in effect until end-of-file or until overridden by another directive of
the same type. This directive affects any function whose beginning
follows the directive textually in the current file.
#pragma mta trace "<string-name>"
This directive generates a user-defined tracepoint in the executable
code. The tracepoint generated is named the value passed in
string-name. Using the -notrace option on the compiler command
line causes this directive to be ignored. For more information, see
Cray XMT Performance Tools User's Guide.
#pragma mta update
This directive tells the compiler that the next statement is an update
to a variable, and that the update should be done atomically. By
default, the compiler does not necessarily make updates atomic.
Using this directive does not place any restrictions on code
movement around this update statement such as would occur if the
variable were declared to be a sync-qualified variable. The variable
to be updated may be of any simple arithmetic or logical type. The
S247920 121