微软引入 LLILC,基于 LLVM 的.NET/CoreCLR 编译器

  • Sergio De Simone
  • 朱明

2015 年 5 月 20 日

话题:.NETC#语言 & 开发架构

.NET 基金会宣布了名为LLILC(发音为“lilac”)的新项目的发布。该项目最初由微软贡献,致力于为.NET 核心(Core)提供新的基于 LLVM 的原生代码编译器,从而使“在任何 CoreCLR 能够移植的以及 LLVM 会支持的平台上”运行.NET 程序成为可能。

微软开发基于 LLVM 的代码生成器所采用的方法,是基于现有的 CIL 阅读器,“与生产环境中的阅读器(RyuJIT)一样直接针对同样的通用 JIT 接口进行操作”。该方法被认为优于从现有的以 LLVM BitCode 为目标的开源项目着手,比如SharpLangLLVMSharp,从而能够更好地支持新的 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 各部分的保护伞”。

查看英文原文:Microsoft Introduces LLILC, LLVM-based .NET/CoreCLR Compiler


感谢邵思华对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

.NETC#语言 & 开发架构