IVDEP ディレクティブによるループ・キャリー・メモリ依存の不在

Itanium® ベース・アプリケーションの場合、-ivdep_parallel オプションは IVDEP ディレクティブが指定されたループにループ・キャリー・メモリ依存が確実にないことを示します。この手法は、スパース・マトリックス・アプリケーションに役立ちます。例えば、次のループは ループ・キャリー依存がないことを示す IVDEP ディレクティブの他に -ivdep_parallel を必要とします。

#pragma ivdep

 

for(i=1; i<n; i++)

{

   e[ix[2][i]]=e[ix[2][i]]+1.0;

   e[ix[3][i]]=e[ix[3][i]]+2.0;

}

次の例では、このオプションと IVDEP ディレクティブを使用すると、a() への格納でループキャリー依存が確実にないことを示します。

#pragma ivdep

 

for(j=0; j<n; j++)

{

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

}