プリフェッチのサポート

prefetchディレクティブ

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

#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;

}