Intel C/C++コンパイラがLLVMを採用
インテルのC/C++コンパイラがLLVMベースとなりました。これまでのコンパイラとは部分的に互換性が無いためガイドに従い修正・変更を行う必要があります。
IntelがC/C++コンパイラにLLVMを採用しました。
LLVMとは
- 任意のプログラミング言語に対応可能なコンパイラ基盤
- 最適化が施されるような設計となっている
- LLVM自体はC++で記述されている
- AppleやMS等でも利用されている
LLVMの採用によりコンパイル時間が短縮されています。
またLLVM採用コンパイラでは、実行時パフォーマンスもおよそ20%程度向上しています。
またIntelは C/C++での開発プロジェクトはLLVMベースのものを利用するように推奨しており、Intelがクラシックと呼んでいる過去バージョンも今年中にLLVMを採用したものに変更するよう呼びかけています。
またこれまでのコンパイラは今後 “Legacy Product Support”となり更新はされなくなるとしています。
移行ガイド
これまでのコンパイラからLLVMベースに移行するためのガイドも公開されています。
デフォルト値の変更や新規オプションの設定に関する記述が見られます。
また、プラグマも変更されているため、クラシックコンパイラやGCCでサポートされているからと言って、ICX(LLVMコンパイラ)でサポートされているとは思わないようにとの記載もあります。
大きなアプリケーションではLLVMベース移行のための修正と確認が大変そうな印象です。
ダウンロード
このC/C++コンパイラは oneAPI Base TookKitに含まれており以下のリンクからダウンロードすることが出来ます。
Windows/macOS/Linuxに対応しています。
まとめ
LLVM採用で良いことばかり
Intelの発表ではこれまでのクラシックコンパイラと比較し、コンパイル時間、実行時パフォーマンスがLLVMベースが上回っています。
今後はLLVMベースに移行を
今年中にLLVMベースのコンパイラ移行を勧めてており、これまでのコンパイラは今後更新されなくなります。