Compiler Assertions
Assertions help the compiler to deal with data dependencies that cannot be analyzed based on program semantics alone:
C*$* (NO) CONCURRENTIZE #pragma (no) concurrentize
- (not) to apply parallel optimizations, the scope is the entire compilation unit
-
C*$* ASSERT DO (SERIAL) #pragma serial
C*$* ASSERT DO (CONCURRENT) #pragma concurrent
- implement the required action for the loop (nest) immediately following the directive
-
C*$* ASSERT PERMUTATION(A) #pragma permutation(a)
- similar to the IVDEP directive, asserts that the indirect addressing with index array A in the following loop nest will not alias to the same storage location
-
C*$* ASSERT CONCURRENT CALL #pragma concurrent call
- asserts that the following loop nest can be parallel despite subroutine invocations that cannot be analyzed for side effects
-
-LNO:ignore_pragmas compiler option is used to disable these directives