微軟引入LLILC,基于LLVM的.NET/CoreCLR編譯器
英文原文:Microsoft Introduces LLILC, LLVM-based .NET/CoreCLR Compiler
.NET 基金會宣布了名為 LLILC(發音為“lilac”)的新項目的發布。該項目最初由微軟貢獻,致力于為 .NET 核心(Core)提供新的基于 LLVM 的原生代碼編譯器,從而使“在任何 CoreCLR 能夠移植的以及 LLVM 會支持的平臺上”運行 .NET 程序成為可能。
微軟開發基于 LLVM 的代碼生成器所采用的方法,是基于現有的 CIL 閱讀器,“與生產環境中的閱讀器(RyuJIT)一樣直接針對同樣的通用 JIT 接口進行操作”。該方法被認為優于從現有的以 LLVM BitCode 為目標的開源項目著手,比如 SharpLang 和 LLVMSharp,從而能夠更好地支持新的 CoreCLR 接口。
當前,LLILC 集中精力于提供 JIT 編譯器,不過這還尚未完成。在 Windows 上,LLILC 現在能夠編譯 CoreCLR 中一半的測試,“其余仍然要依靠 RyuJIT”。隨著在 Linux 和 OS X 上的 .NET 核心的成熟度的提高,LLILC 團隊計劃也為這些平臺提供與 Windows 的實現質量相近的 LLILC 實現。
在 LLILC 的路線圖上的下一個目標是安裝時(install-time)JIT 編譯器,這應當“允許生成的代碼可以在應用程序的多次調用間共享,或者在共享一組程序集(assembly)的多個進程間共享”。最后,LLILC 項目還將考慮提前(ahead-of-time)編譯器的實現。
.NET 基金會是微軟在 2014 Build 大會上成立的,作為“所有微軟已經開源的,以及將來會在開源協議(很可能是 Apache 2.0)下發布的所有 .NET 各部分的保護傘”。