User`s guide
Cray XMT™ Programming Environment User’s Guide
The compiler recognizes the following semantic assertions:
#pragma mta assert can replace variable-list
This directive asserts that it is safe to use scalar replacement of the
aggregates (objects or structs)invariable-list and the aggregates
pointed to by pointers in variable-list. This pragma is also a request
for scalar replacement of those aggregates even if the code was not
compilied with the -scalar_replacement option.
Items in variable-list must be aggregates or pointers to aggregates.
Any pointers must either be marked with a noalias pragma or
qualified with the restrict type qualifier. In addition, pointers
must point only to a single aggregate during a given invocation of
the routine in which the pragma appears. See Scalar Replacement
Section of Optimization Guide for more information.
#pragma mta assert loop can replace variable-list
This directive asserts that it is safe to use scalar replacement of the
aggregates (objects or structs)invariable-list and the aggregates
pointed to by pointers in variable-list for the loop that immediately
follows the pragma. This pragma is also a request for scalar
replacement of those aggregates even if the code was not compilied
with the -scalar_replacement option.
Items in variable-list must be aggregates or pointers to aggregates.
Any pointers must either be marked with a noalias pragma or
qualified with the restrict type qualifier. In addition, pointers
must point only to a single aggregate within the loop. See Scalar
Replacement Section of Optimization Guide for more information.
#pragma mta assert no replace variable-list
This directive tells the compiler not to use scalar replacement of the
aggregates (objects or structs)invariable-list and any aggregates
pointed to by pointers in variable-list. This is useful for fine-tuning
files that are compilied with the -scalar_replacement option.
See Scalar Replacement Section of Optimization Guide for more
information.
126 S–2479–20