2012-02-08 13 views
5

LLVM IRにOpen-MP構成を追加するための機能/方法があるかどうかを知りたい。 llvm-3.0はOpenMP指令を引き続きサポートしていますか?LLVM OpenMPサポート

答えて

2

OpenMPは、高度な言語拡張です。したがって、C/C++/FORTRANのフロントエンドでは、プラグマを必要な実行時呼び出しとコード変更にする必要があります。

OpenMPがLLVM IRにどのように「追加」されるのかわかりません。 OpenMPプラグマをサポートし、LLVM IRを発行するC/C++/FORTRANコンパイラが必要な場合は、dragoneggを試してください。

+1

最近のmlスレッド[(LLVMdev)LLVM/jan2012のOpenMPサポート](http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-January/046823.html)では、組み込み関数を使用しています。自動並列化に関心のある人は です。普通のLLVM-IRループを OpenMP拡張機能付きのLLVM-IRに変換することにもっと興味があります。 – osgx

+0

@osgx:ライブラリから独立したompランタイムの呼び出しについて話しているなら、特殊な組み込み関数は自然な方法です。理論上のオートパイロットコードは、omp対応のコードを生成する可能性があります。だから、おそらく元の質問は、 "LLVMがOpenMP指令を引き続きサポートできるかどうかを明確にする必要があります"。 –

+0

右。基本的にopenmpの低下は、さまざまなopenmpディレクティブ(いくつかのcfg変更)のライブラリ呼び出しのセットですが、openmpのためにIRに必要なことは何もありません。 OpenMPディレクティブを認識し、より高いレベルで再構成する場合は、ループ変換が必要ですが、IRサポートが必要な場合があります。 – echristo