ITPub博客

首页 > 数据库 > 数据库开发技术 > 代码可以编译但是爆红_完全开源!华为方舟编译器正式支持C语言

代码可以编译但是爆红_完全开源!华为方舟编译器正式支持C语言

数据库开发技术 作者:云原生玩家 时间:2021-01-14 12:32:07 0 删除 编辑

关注“Java有道”,星标或置顶,

cb4ca5d92f73c6e8e205ffb6b72fabd6.png

链接:http://www.kkj.cn/

2019年8月底,华为方舟编译器(OpenArkCompiler)正式开源,迈出了跨越性的一步。一年多来,方舟编程体系陆续实现了编译器、引擎、调试器的开源,其中编译器的重点功能主要集中在Java应用程序静态编译上。

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

比如在现有Java编程环境下面,开发者经常需要同时编写Java、C语言程序,通过JNI相互调用,而这两种语言之间目前是不直接互通的。

方舟编程体系的终极愿景之一,就是要通过一致的IR来表述不同语言,并跨越语言进行全局优化。

现在,方舟编译器加入了对C语言程序的支持,当然继续开源,也是实现Java和C混合编译的基础。

未来,方舟引擎不仅要对来自Java语言的IR代码进行JIT编译,也会支持对C、C++语言的IR代码进行JIT编译。

c09c00d46cbc2699f80fb327f85bc1ef.png

代码链接地址:

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编译时的运用,以及众多依赖于编译分析的软件分析和优化工具。

推荐阅读

•  今日头条起诉今日油条商标侵权,后者还申请了明日油条、饼多多、快手抓饼等商标

•  三年啦,跳槽成功的Android开发面经总结!

•  国内开发者开源爬虫工具箱爆红GitHub

•  把 14 亿人拉到一个微信群,如何实现?

•  打造一款高逼格的Vim神器

•  delete后加 limit是个好习惯么

•  麻省理工选出的全球十大突破性技术

•  Chrome 上开发调试的九个真香技巧

•  Spring 最常用的 7 大类注解,史上最强整理!

•  卧槽!用漫画了解 Linux 内核到底长啥样!

•  腾讯的这个框架火了!

•  OLAP数仓入门:进阶篇

•  某国产下载神器又出事了:前 CEO 已被公安局立案侦查!

•  lambda,真的好美。

•  2020 年最漂亮的 Linux 发行版

dec6e2b2e93e0601ffdbcc66bc741d50.png

0014aace077a2ca16a42d61bf1f58012.png

原文作者:黄sir好;如有侵权,请联系管理员删除。

上一篇: 方舟编译器-简述
请登录后发表评论 登录
全部评论

注册时间:2020-09-01

  • 博文量
    23
  • 访问量
    3694