微软引入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 各部分的保护伞”。