None.
Inserts prefetch instructions automatically where there are opportunities to improve code performance.
When -qprefetch is in effect, the compiler may insert prefetch instructions in compiled code. When -qnoprefetch is in effect, prefetch instructions are not inserted in compiled code.
.-:-----------------------------------. V | .-prefetch----+---------------------------------+-+-. | | .-noassistthread-----------. | | | +-=--+-assistthread--=--+-SMT-+-+-+ | | | '-CMP-' | | | | .-noaggressive-. | | | +-=--+-aggressive---+-------------+ | | '-=--dscr--=--value---------------' | >>- -q--+-noprefetch----------------------------------------+--><
-qprefetch=noassistthread:noaggressive:dscr=0
The value that you specify for dscr must be 0 or greater, and representable as a 64-bit unsigned integer. Otherwise, the compiler issues a warning message and sets dscr to 0. The compiler accepts both decimal and hexadecimal numbers, and a hexadecimal number requires the prefix of 0x. The value range depends on your system architecture. See the product information about the POWER® Architecture for details. If you specify multiple values, the last one takes effect.
The -qnoprefetch option does not prevent built-in functions such as __prefetch_by_stream from generating prefetch instructions.
When you run -qprefetch=assistthread, the compiler uses the delinquent load information to perform analysis and generates prefetching assist threads. The delinquent load information can either be provided through the built-in __mem_delay function (const void *delinquent_load_address, const unsigned int delay_cycles), or gathered from dynamic profiling using -qpdf1=level=2.
DO i = 1, 1000
!IBM* MEM_DELAY(x(i), 10)
x(i) = x(i) + 1
END DO
DO I = 1, 1000
!IBM* MEM_DELAY(X(I), 10)
X(I) = X(I) + 1
END DO