LLVM 9.0.0进行了重大改进

LLVM社区发布了9.0.0版本,优化了内存管理,模式匹配和C++性能。新版本引入了对窄存储区的宽标量值模式匹配,支持RISCV目标,以及对OpenCL框架的C++实验性支持。然而,LLVM 9.0.0存在与GCC 9不兼容的问题,并且ORCv1 JIT API已被弃用。LLVM作为Rust和Swift等语言的编译器基础,其未来可能在机器学习领域有所发展。
摘要由CSDN通过智能技术生成

LLVM社区已发布LLVM编译器基础结构项目的9.0.0版本。 此更新对内存,模式匹配和C ++进行了优化。

在新版本中,LLVM会在有问题的代码必须失效的情况下将存储移至恒定内存。 对于某些希望能够抛弃const C / C ++代码库,事实证明这是一个问题。 这是一个不确定的行为,到目前为止,还没有以这种确切的方式积极地用于优化目的。

[ 什么是Rust? 安全,快速,轻松地进行软件开发的方式 | 下一页:在InfoWorld教程中了解如何开始使用Rust | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

此外,LLVM现在将对一系列窄存储区存储的宽标量值进行模式匹配。 例如,Clang将编译以下函数,以可移植的方式按大端顺序写入32位值:

void write32be(unsigned char *dst, uint32_t x) {
  dst[0] = x >> 24;
  dst[1] = x >> 16;
  dst[2] = x >> 8;
  dst[3] = x >> 0;
)

而且,LLVM优化器现在将在某些情况下将对memcmp调用转换为bcmp

LLVM 9.0.0的其他更改包括:

  • 针对OpenCL框架的C ++的实验性支持。
  • 插件提供了两个新的扩展点EP_FullLinkTimeOptimizationEarlyEP_FullLinkTimeOptimizationLast ,以专用于完整的LTO管道管理器。
  • 支持asm goto ,例如,使x86_64的主线Linux内核可以使用Clang构建。
  • CMake的参数CLANG_ANALYZER_ENABLE_Z3_SOLVER被取代LLVM_ENABLE_Z3_SOLVER
  • 现在,当降低具有不可达默认目标的交换机时,LLVM会为跳转表发出范围检查。
  • RISCV目标已从“实验”阶段毕业。 现在默认情况下已构建。
  • ORCv1 JIT API已弃用。

LLVM 9.0.0仍然存在一个问题,导致GCC 9对Clang进行了错误编译。这是该版本中的一个已知问题

LLVM支持用于Rust和Swift语言的编译器以及用于构建新语言的工具包。 LLVM可能增长的领域之一是机器学习,而MLIR(多级中间表示)机器学习编译器基础结构刚刚为LLVM Foundation做出了贡献。 MLIR由TensorFlow机器学习库的开发人员创建。

哪里下载LLVM 9.0.0

您可以从llvm.org 下载LLVM 9.0.0

From: https://www.infoworld.com/article/3441079/llvm-900-arrives-with-major-improvements.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值