2019年8月,华为方舟编译器(OpenArkCompiler)正式开源,实现了飞跃。
一年多来,方舟编程系统先后实现了编译器、引擎、调试器的开源,其中编译器的关键功能主要集中在Java应用的静态编译上。
华为强调,方舟项目的目标是构建基于 MapleIR 的跨语言编程环境,实现跨语言全局分析和优化。
比如在现有的Java编程环境下,开发者往往需要同时编写Java和C语言程序,并通过JNI相互调用,目前两种语言还不能直接互通。
方舟编程系统的终极愿景之一是通过一致的 IR 来表达不同的语言,并进行跨语言的全局优化。
现在,方舟编译器增加了对 C 语言程序的支持。当然,它继续开源,也是实现Java和C混合编译的基础。
未来方舟引擎不仅可以对Java语言的IR代码进行JIT编译,还将支持C、C++语言IR代码的JIT编译。
代码链接地址:
1、
2、
本次开源内容主要仅限于O0的能力好用的手机c语言编译器,O2之上对C的优化留待日后进一步开源。
目前方舟编译器已经支持了C语言的大部分常用特性好用的手机c语言编译器,目前不支持的特性包括complex type、packedstruct、long double、alloca out-of-scope free等。
目前支持 aarch64 后端,并支持大多数 gcc_torture 用例。例如与第三方合作的C前端(开源时间待定),可以正确运行spec2017的所有C语言整数用例。
下一步,方舟社区计划在 Maple 编译器的拓宽和深化方面做更多的工作。
在广度上,一方面会尝试支持新的语言,进一步验证Maple基础平台的语言独立性,另一方面会增加对RISC-V等新后端的支持。
在深度上,社区将尽快开源 O2 分析和优化阶段,对 LLVM/GCC 进行性能基准测试,并使用统一的 Maple 表示来优化跨语言的布局。
自正式开源以来,方舟社区开源代码从50K增长到170K,累计6.9K Stars,孵化了5个相关子项目。
方舟编译器作为方舟编程系统的重要组成部分,只展示了静态编译。未来随着方舟引擎的完成,可以看到方舟编译器在各种AOT或者JIT编译中的应用,以及很多依赖。用于编译分析的软件分析和优化工具。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 欧资源网