可使用新的 -xprefetch_level=i 选项控制由 -xprefetch=auto 确定的自动插入预取指令的主动性。编译器变得更加主动,也就是说,引入了更多预取级别 -xprefetch_level(依次增高)。
-xprefetch_level 取何适当值取决于应用程序的高速缓存未命中次数。-xprefetch_level 值越高,越有可能提高那些高速缓存未命中次数较多的应用程序的性能。
i 必须是 1、2 或 3。
表 A–45 -xprefecth_level 值
值 |
含义 |
---|---|
1 |
启用预取指令的自动生成。 |
2 |
针对其他循环(超过在 -xprefetch_level=1 针对的循环)来插入预取。插入的其他预取可超过在 -xprefetch_level=1 插入的预取。 |
3 |
针对其他循环(超过在 -xprefetch_level=2 针对的循环)来插入预取。插入的其他预取可超过在 -xprefetch_level=2 插入的预取。 |
指定了 -xprefetch=auto 时,缺省值为 -xprefetch_level=1。
仅当使用 -xprefetch=auto 对该选项进行编译,优化级别为 3 或更高 (-xO3) ,而且是在支持预取的平台(v8plus、v8plusa、v9、v9a、v9b、generic64、native64)上时,该选项才有效。