首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LLVM支持龙芯架构

去年年底,有消息称,为加强软件生态建设,龙芯为 GCC和LLVM编译器和相关 GNU 工具链组件提供 LoongArch 指令级架构(IS)支持。最近,LLVM 15.0的开发树上出现了对中国的LoongArch CPU架构的初始补丁。

LLVM是一种编译器,它的模块化设计很好,这个编译器中的很多功能可以被单独实现或者改进。LLVM可以被设计成很多语言编译器实现的后端,负责处理程序优化和跨平台,而前端只需将程序转换成LLVM IR即可。比如说,Clang就是基于LLVM实现的C/C++编译器,它的主要功能就是将C/C++程序转换成LLVM IR,然后由LLVM负责后续的工作。

LLVM技术上的(最大)优势就在于它的模块化设计。在LLVM中,IR的解析,优化,汇编码的生成,寄存器分配,汇编码优化以及机器码生成,各种类型的二进制文件生成全部都是接口定义清晰的模块完成的,很容易分别改进或者添加定制功能。而且由于LLVM的C++实现,很多模块理解和使用比较容易。这些特性使得LLVM可以很容易地被用在科研和生产实践当中。反观GCC,模块化做得不如LLVM好,这使得它定制或者改进比较不方便。

目前,LLVM编译器社区已经正式合入了对Loongarch架构的初步支持,其主干源码库中已经出现了跟X86和ARM并列的LoongArch顶层目录。这对于龙芯而言是一个里程碑。很多开源项目已经接受了对LoongArch的支持,众人拾柴火焰高,相信随着支持LoongArch的软件越来越丰富,龙芯生态会在这个过程中茁壮成长。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220212A08RI400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券