华为方舟编译器正式声援C说话:十足开源

日期:2020-10-16/ 分类:联系我们

2019年8月终,华为方舟编译器(OpenArkCompiler)正式开源,迈出了跨越性的一步。

一年多来,方舟编程系统不息实现了编译器、引擎、调试器的开源,其中编译器的重点功能主要荟萃在Java行使程序静态编译上。

华为强调,方舟项方针现在标是构建一个基于MapleIR的跨说话编程环境,实现跨说话的全局分析及优化。

比如在现有Java编程环境下面,开发者频繁必要同时编写Java、C说话程序,议决JNI相互调用,而这两栽说话之间现在是不直接互通的。

方舟编程系统的最终愿景之一,就是要议决相反的IR来外述迥异说话,并跨越说话进走全局优化。

现在,方舟编译器添入了对C说话程序的声援,自然不息开源,也是实现Java和C同化编译的基础。

异日,方舟引擎不光要对来自Java说话的IR代码进走JIT编译,也会声援对C、C++说话的IR代码进走JIT编译。 

代码链接地址:

1、https://gitee.com/openarkcompiler-incubator/mapleall

2、https://gitee.com/openarkcompiler-incubator/maple_engine

本次开源内容主要限于O0的能力周围,针对C的O2以上的优化留待异日进一步开源。

现在,方舟编译器已经声援C说话的绝大片面常用特性,暂不声援的特性有complex类型、packedstruct、long double、alloca out-of-scope free。

现在声援aarch64后端,并声援绝大片面gcc_torture用例,比如互助一款第三方相符作的C前端(开源时间待定),能够精确运走spec2017的一切C说话整型用例。

下一步,方舟社区计划在Maple编译器上做更多的拓宽和深耕做事。

广度上,一方面会尝试声援新的说话,进一步验证Maple基础平台的说话无关性,另一方面会增补对新后端如RISC-V的声援。

深度上,社区会尽快开源O2分析与优化phase,性能对标LLVM/GCC,同时行使同一的Maple外示,组织跨说话全局优化。

正式开源以来,方舟社区开源代码从50K添长到170K,累计6.9K Star,并孵化5个有关子项现在。

方舟编译器行为方舟编程系统的主要一环,现在表现的还只是是静态编译,异日随着方舟引擎的齐全,能够望到方舟编译器在各栽AOT或者JIT编译时的行使,以及多多倚赖于编译分析的柔件分析和优化工具。

s_1478f584b4e04eb09d5a00f5b9bc6b38