Purpose
Provides information about the characteristics
of your code that can help the compiler fine-tune optimizations.
Syntax
Option:
>>- -q--assert--+-----------------------------+----------------><
| .-:--------------------. |
| V .-deps---. | |
'-=------+-+-nodeps-+---+---+-'
+-itercnt=n----+
+-minitercnt=n-+
+-maxitercnt=n-+
+-CONTIGuous---+
+-NOCONTIGuous-+
+-refalign-----+
'-norefalign---'
@PROCESS:
@PROCESS ASSERT(suboptions)
Defaults
-qassert=deps:norefalign:nocontig
Parameters
- deps | nodeps
- Specifies
whether or not any loop-carried dependencies exist.
- itercnt=n
- Specifies a value for loop iteration counts for the optimizer
to use when it cannot statically determine the loop iteration count. n must
be a positive integer.
- minitercnt=n
- Specifies the expected minimum iteration count of the loops in
the program. n must be a positive integer.
- maxitercnt=n
- Specifies the expected maximum iteration count of the loops in
the program. n must be a positive integer.
- CONTIGuous | NOCONTIGuous
- Specifies the following contiguity for all compilation
units:
- All array pointers are pointer associated with contiguous targets.
- All assumed-shape arrays are argument associated with contiguous
actual arguments.
When -qassert=contig is specified,
the compiler can perform optimizations according to the memory layout
of the objects occupying contiguous blocks of memory.
Using -qassert=contig does
not have the same effect as specifying the CONTIGUOUS attribute
for array pointers and assumed-shape arrays. -qassert=contig does
not validate contiguity assertion. To ensure Fortran 2008 semantics, use the CONTIGUOUS attribute.
Notes: - -qassert=contig is not supported through
the ASSERT directive.
- Using this suboption might produce unexpected results without
warning.
- refalign | norefalign
- Specifies that all pointers inside the compilation unit only point
to data that is naturally aligned according to the length of the pointer
types. With this assertion, the compiler might generate more efficient
code. This assertion is particularly useful when you target a SIMD
architecture with -qhot=level=0 or -qhot=level=1 with -qsimd=auto.
Usage
The itercnt, minitercnt,
and maxitercnt values are not required to
be accurate. The values only affect performance, never correctness.
Specify the values following the rule minitercnt <= itercnt <= maxitercnt.
Otherwise, messages are issued to indicate that the values are inconsistent
and the inconsistent value is ignored.