OpenArkCompiler 1.0 正式发布,方舟编译器的开源项目
OpenArkCompiler 1.0 版本已正式发布。
OpenArkCompiler 是来自华为方舟编译器的开源项目,它具备的四个技术特点能够将不同语言代码编译成一套可执行文件,在运行环境中高效执行:
- 支持多语言联合优化、消除跨语言调用开销;
- 更轻量的语言运行时;
- 软硬协同充分发挥硬件能效;
- 支持多样化的终端设备平台
Maple 编译器基础设施提供 C 编译器、稳定的 aarch64 静态代码生成器以及大量优化套件。
前端
Hir2mpl 支持 .ast、.dex、.class 和 .jar 作为输入。目前,未启用 .dex、.class 和 .jar。它根据输入启用相应的编译过程。
Hir2mpl 将 clang 生成的 .ast 文件作为输入,并将其转换为 mpl 文件。有关 mpl 文件和 MapleIR 的更多详细信息,查看 MapleIRDesign。
中间层
- Function inlining
- Constant folding
- Auto vectorization
- Loop unrolling
- CFG simplification
- Value range propagation
- Dead store elimination
- Copy propagation
- Partial Redundancy Elimination
- Induction variable optimizations
- Code sinking
- Optimized basic block layout
后端
- Copy propagation
- Target specific propagation
- Register coalescence
- Peephole optimization
- Dead code elimination
- If conversion optimization
- Extended block optimization
- Instruction scheduling
- Register allocation
- CFG optimization
最后,公告提到 Maple 可以正常使用 SPEC CPU 2017,gcc.c-torture。他们使用 Clang 作为解析器和词法分析器,使用 aarch64-linux-gnu-gcc 作为汇编器和链接器。而他们自己的解析器和词法分析器正在开发中。
