Sun Studio 12: C++ ユーザーズガイド

A.2.159.1 デフォルト

-xprefetch を指定しないと、-xprefetch=no%auto,explicit が使用されます。

-xprefetch だけを指定すると、-xprefetch=auto,explicit が使用されます。

-xprefetch だけを指定した場合や引数として auto または yes を指定した場合以外は、デフォルトで no%auto が使用されます。たとえば、-xprefetch=explicit-xprefetch=explicit,no%auto と同じことです。

デフォルト explicit は、引数に no%explicitno を指定して明示的に無効にするまで継続されます。たとえば、-xprefetch=auto-xprefetch=auto,explicit と同じことです。

-prefetch または -prefetch=yes などで自動先読みを有効にしても、応答時間係数を指定しないと、-xprefetch=latx:1.0 が使用されます。

相互の関連性

このオプションは、置き換えられる代わりに蓄積されます。

sun_prefetch.h ヘッダーファイルには、明示的な先読み命令を指定するためのマクロが含まれています。先読み命令は、実行コード中のマクロの位置にほぼ相当するところに挿入されます。

明示的な先読み命令を使用するには、使用するアーキテクチャーが適切なもので、sun_prefetch.h をインクルードし、かつ、コンパイラコマンドに -xprefetch が 指定されていないか、-xprefetch-xprefetch=auto,explicit-xprefetch=explicit あるいは -xprefetch=yes が指定されていなければいけません。

マクロが呼び出され、sun_prefetch.h ヘッダーファイルがインクルードされていても、-xprefetch=no%explicit-xprefetch=no が指定されていると、明示的な先読み命令は実行コードに組み込まれません。

latx:factor の使用は、自動先読みが有効になっている場合にかぎり有効です。つまり、latx:factor は、-xprefetch=yes,latx:factor の場合のように、yes またはauto の関係で使用しないかぎり無視されます。

警告

明示的な先読みは、測定値によってサポートされた特殊な環境でのみ使用すべきです。

コンパイラは、広範囲なマシンやアプリケーション間で最適なパフォーマンスを得るために先読み機構を調整しますが、-xprefetch=latx:factor は、パフォーマンステストで明らかに利点があることが確認された場合にかぎり使用してください。使用先読み応答時間は、リリースごとに変わる可能性があります。したがって、別のリリースに切り替えたら、その都度応答時間係数の影響を再テストすることを推奨します。