LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. |
現在開発が進められているLLVM Clang向けのOpenMP対応に関する内容がIntelより発表(PDF)された。OpenMP対応が取り込まれたLLVM Clangは、GCCからのLLVMへの移行を促すきっかけになる可能性がある。
LLVM ClangとGCCの性能比較(コンパイル時間比較、コンパイルされたバイナリのサイズ比較、コンパイルされたバイナリの実行性能比較)はしばしば発表されるが、どちらも一長一短があり、決定打となる性能の違いはそれほどない状況にある。ただし、LLVM ClangはOpenMPをサポートしていないため、OpenMPを使用するアプリケーションではGCCと性能差が開きすぎるという状況にあった。
OpenMPは共有メモリを活用したマルチプロセスプログラミングを実現する技術。ベンダに依存しない技術で、GCCをはじめ主要なコンパイラではすでに対応が入っている。主要コンパイラの中ではLLVM Clangが未対応という状況にある。今回、Intelから提供されるコードはOpenMP 3.1に対応。4.0対応は現在作業中とされている。3条項のBSDライセンスで提供されており、LLVM Clangとライセンス的な相性がよいとされている。
Intelによる取り組みがどの段階でLLVM Clangのソースツリーにマージされるかは発表されていない。LLVM Clangは数ヶ月以内にLLVM Clang 3.3のリリースが予定されているが、タイミング的に考えてLLVM Clang 3.3にはこの機能はマージされないものとみられる。