1.4K Star 7.6K Fork 1.4K

GVP方舟编译器 / OpenArkCompiler

 / 详情

里程碑:Maple C编译器 基于arm64后端SPEC 2016性能超越GCC 7.5 (-O2)

待办的
成员
创建于  
2021-08-03 16:12

经过差不多九个月的努力,Maple C编译器(ARM后端)完成了对GCC7.5 -O2的追赶和超越,具体数据和过程请参见后面的图。

虽然我们坚信基于Maple的框架,这件事情一定会发生,但是确实速度超出预期。Maple社区的小伙伴们确实太给力了。这一个里程碑,充分说明了作为国产编译器,Maple基础框架底不逊色于任何主流编译器,同时由于IR的灵活扩展能力,我们在快速构建优化编译器上面展现了自己的优势。

当前的规划,调优虽然会持续进行,但主要目标暂时不会再放在SPEC上,我们认为在这方面我们不需要再证明自己了,而且,maple还有更广阔的战场,我们需要在广度和深度上面继续挖掘,包含但不限于:

  1. 传统静态编译器框架
    a) 跨模块的过程间分析框架
    b) 各个层级的反馈优化(中端,后端,二进制级别)
    c) 多后端支持的尝试(x64,arm32,riscv)
    d) 前端的自研替代
  2. 传统静态编译器以外…
    a) JIT/AOT 轻量化编译框架
    b) 是的,我们从来没有放弃动态语言静态化的尝试和努力…
  3. 语言扩展与多场景多诉求适配
    除了传统高性能诉求,新的应用场景对编译器诉求也趋向多样化,如安全,维测等等。场景驱动的新语言扩展就是Maple系统的驱动力,而这也是我们IR灵活扩展能力体现的大好舞台。

总之,我们认为Maple 系统已经具备了成为最新编译与编程技术研究和工程平台的基础, 而且这次的C编译器不同于Java,由于不涉及太多runtime,我们可以做到完全开源,真正的所见即所得,衷心希望大家试用和参与。

每天进步一点点。

输入图片说明

Benchmark Case ARM-GCC MapleC(Current) Gap
500.perlbench_r case_1 219.544 224.34 -2.41%
case_2 138.25 152.99
case_3 168.737 161.39
502.gcc_r case_1 66.437 69.53 -3.70%
case_2 81.435 84.17
case_3 80.429 82.77
case_4 75.677 78.51
case_5 99.139 103.64
505.mcf_r case_1 579.71 558.91 3.72%
525.x264_r case_1 67.538 63.728 9.80%
case_2 255.368 226.456
case_3 241.598 218.369
557.xz_r case_1 146.37 149.764 0.25%
case_2 182.037 175.596
case_3 134.697 135.584
average 1.53%

评论 (3)

yi_jiang 创建了任务
yi_jiang 负责人设置为yi_jiang
yi_jiang 置顶等级设置为
yi_jiang 修改了描述
yi_jiang 修改了描述
yi_jiang 修改了标题
yi_jiang 修改了描述
yi_jiang 修改了描述
yi_jiang 修改了描述
yi_jiang 修改了标题
展开全部操作日志
yi_jiang 修改了描述
yi_jiang 修改了标题
yi_jiang 修改了描述
yi_jiang 修改了描述

@yi_jiang 汇编和链接等有计划吗,还是准备就一直用其它编译工具链的工具了

@千尺 感谢你的关注,功能性的汇编和链接有计划但是是远期的,主要考虑的因素是:
i)这个领域暂时未出现对竞争力有强要求的需求
ii)涉及的技术在社区掌控范围内,如果有需求可以相对快速成型。
与之对应link-time optimization 已经在计划里了。如果你那边有什么特殊需求和计划,欢迎一起讨论。

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
C++
1
https://gitee.com/openarkcompiler/OpenArkCompiler.git
git@gitee.com:openarkcompiler/OpenArkCompiler.git
openarkcompiler
OpenArkCompiler
OpenArkCompiler

搜索帮助