-qprefetch

类别

优化和调整

@PROCESS

无。

用途

自动在可以提高代码性能的位置插入预取指令。

-qprefetch 生效时,编译器可能会在已编译的代码中插入预取指令。 当 -qnoprefetch 生效时,预取指令不会插入编译代码中。

语法

读取语法图跳过可视语法图 -q prefetch:=noaggressiveaggressive=dscr=noprefetch

缺省值

-qprefetch=noaggressive:dscr=0

参数

aggressive | noaggressive
此子选项指导编译器在优化级别 -O3 或更高级别生成主动数据预取。 如果未指定 aggressive,那么将隐含 -qprefetch=noaggressive
dscr
您可以为 dscr 子选项指定值以提高应用程序的运行时性能。 编译器将数据流控制寄存器 (DSCR) 设置为指定的值以控制硬件预取引擎。 对于 POWER8 或更高版本的处理器 ,仅当优化级别为 -O2或更高 ;对于 POWER7 和 POWER7+ 处理器,仅当优化级别为 -O3或更大,且高阶变换(HOT)有效。 dscr 的缺省值为 0。
value

dscr 指定的值必须为 0 或更大,并且可表示为 64 位无符号整数。 否则,编译器将发出警告消息并将 dscr 设置为 0。 编译器接受十进制和十六进制数字,并且十六进制数字需要前缀 0x。 值范围取决于系统体系结构。 请参阅有关 POWER ® 架构的产品信息以获取详细信息。 如果指定多个值,那么最后一个值生效。

用途

-qnoprefetch 选项不会阻止内置函数(例如 __prefetch_by_stream)生成预取指令。

相关信息