プリフェッチのサポート

prefetch ディレクティブ

prefetchnoprefetch ディレクティブは、データ・プリフェッチがメモリ参照に生成されるか、されないかを指定します。これは、コンパイラが使用する手法に影響を与えます。このディレクティブの構文は次のとおりです:

#pragma noprefetch

#pragma prefetch

#pragma prefetch a,b

ループの前に prefetch a を置いて、ループ内で式 a[j] を使用する場合、コンパイラはループ内の a[j+d] のプリフェッチを挿入します。d はコンパイラによって決定されます。このディレクティブは -O3 オプションがオンの場合にサポートされます。

prefetch ディレクティブの例

#pragma noprefetch b

#pragma prefetch a

 

for(i=0; i<m; i++)

{

   a[i]=b[i]+1;

}