Skip to content

Latest commit

 

History

History
44 lines (24 loc) · 2.85 KB

2019-11-18.md

File metadata and controls

44 lines (24 loc) · 2.85 KB

RISC-V工具链进展 2019/11/18

大家好,后续我们软件所PLCT实验室将通过HelloGCC社区,每周定期介绍一下在RISC-V开源工具链上的进展。希望能够吸引更多相似领域的小伙伴加入我们,相互促进。本系列文章对应的数据及原始报告是公开的:

https://github.com/isrc-cas/PLCT-Weekly

如果有做 RV Toolchain 的小伙伴希望分享自己的成果,欢迎提交PR。仓库采用 CC-BY-SA-NC 协议。

目前已经公开的有 eternal balance 和 rvv-llvm 两个项目。

Eternal Balance Project

简介:Eternal Balance(永恒天平)项目是PLCT内部的测评体系,偏重编译系统的性能(速度)、安全性、代码体积三个方面。我们后续会开始不定期地公开我们的各类测评结果。目前仍处在起步阶段,测试结果可能有不全或bug,欢迎在文末留言或来repo开issues。仓库是

https://github.com/isrc-cas/Eternal-Balance

RISCV 工具链数据报第一期:CodeSize面面观

由于有表格和图片,请直接下载PDF查看:

https://github.com/isrc-cas/eternal-balance/blob/master/20191118-RISCV-CodeSize.pdf

总结: 在本期RISCV工具链数据报中,我们利用CSiBE对衡量编译器质量的重要指标之一:codesize进行了测试和对比,结果表明,在CSiBE测试集上: 1、对同样编译器和本文所使用的测试选项,RV64和RV32指令集的codesize相差3~4个百分点,RV64的codesize稍大。 2、对同样的指令集和编译器,以-O3为baseline,添加Os选项后,在GCC上可以获得约27%的codesize缩减,而在LLVM-Clang上仅可以获得约14%的codesize缩减; 3、对同样的指令集和等价的编译选项,LLVM-Clang在-O3 baseline上,产生代码的codesize小于GCC 5个百分点;LLVM-Clang在-O3 -Os选项下,产生代码的codesize大于GCC 14个百分点。 第2和第3点共同说明,LLVM-Clang在codesize的优化方面,相对GCC来说,还有很大潜能。

RVV-LLVM 标准实现

目前PLCT正在进行rvv标准(v0.7.1)的实现。我们在GitHub上开源了进行中的rvv实现,计划圣诞节前开始推动upstream。大概完成了260多条,还剩~80条。跟llvm同许可证,可以直接用。

欢迎大家多多star,多多fork(硬核广告)

https://github.com/isrc-cas/rvv-llvm

另外,除了rvv,如果想要编译器实现RISC-V指令集相关的功能也欢迎开 issues (as wishlist)。软件所PLCT实验室后续会持续把RISC-V在编译的 TODO/W.I.P. 都尽可能多地填上。

这次参加第一届CRVF论坛看到很多芯片和系统的报告人都说自己手工hack了一点点汇编或者手工改的部分输出。这让我们作为RISC-V编译器团队很在意。RISC-V的工具链支持不应该这样。我们可以做得更好 ;-)

wishlist1:后续或许可以像HTML5/ES7那种,有一个 status board/wall?