米Microsoft、LLVMベースの.NET CoreCLR向けコンパイラ「LLILC」を発表

 米Microsoftは4月13日、.NETの「CoreCLR」などと組み合わせて利用できるLLVMベースのコンパイラ「LLILC」をLLVMメーリングリストにて発表した。最初のツールとしてCoreCLR向けのJITコンパイラの開発を進める。

 LLILCは.NETで使われる中間コード(Microsoft Intermediate Language、MSIL)をネイティブな実行可能コードに変換するコンパイラ。現時点ではJIT(Just in Time)コンパイルに対応し、AOT(Ahead of Time、事前)コンパイルにも今後対応させる方針だという。まずはx64をターゲットとするが、その後x86や64ビットARMといったLLVMがサポートするアーキテクチャにも対応していくという。さらに、プラットフォームはCore CLRと同様にWindowsだけでなくMac OS XやLinuxもサポートするという。Microsoftは2月に.NET Coreが使用する.NETの実行エンジンであるCoreCLRをオープンソースにしている。

 CoreCLRにはx86/x64版Windows向けとして開発が進められていたJITコンパイラ(「RyuJIT」)がすでに存在するが、新たにJITコンパイラを開発する理由として、LLVMがサポートする全てのターゲットおよびプラットフォームで動くコードジェネレーターを提供できるためと説明している。それにあたり、運用環境にあるRyuJITと同じ共通JITインターフェイスに対して直接利用できるMSILリーダーを修正しているとのこと。

 LLILCはプロジェクトのWebサイトより入手できる。現在Windowsのみで、LinuxとMac OS Xは開発中。ライセンスはMIT License。

LLILC
https://github.com/dotnet/llilc