LLVM 16.0 发布,默认标准改为 GNU++17


LLVM 16 已正式发布。LLVM 16.0 中添加了许多令人兴奋的功能,包括更快的 LLD 链接、Zstd 压缩的调试部分、稳定其 LoongArch 支持、默认为 Clang 的 C++17 等等。

下面是 LLVM 16 的主要变化:

  • Clang 的默认 C++ 标准现在是 GNU++17,而不是 GNU++14/C++14 
  • 实现更多 C++20 功能,以及对现有 C++20 功能的错误修复,并为 C++2b 功能做一些准备
  • 实现了更多 C2X 功能
  • 各种 Clang 16 编译器诊断改进
  • 与 LLVM 15 相比,LLVM 16 的 LLD 链接器对 ELF 对象的链接速度要快得多
  • LLVM 16 LLD 现在也支持 Zstd 压缩,类似于 GCC 13 的 Zstd 支持
  • LLVM 的 LoongArch CPU 后端已升级为“实验性”,现在默认启用。还有初始的 LoongArch JITLink 支持和启用的其他功能。LLVM 的 LLDB 调试器还支持调试 LoongArch 64 位二进制文​​件以及 Clang 编译器支持
  • LLVM 16.0 支持新的英特尔 x86 ISA 扩展,包括 AMX-FP16、CMPCCXADD、AVX-IFMA、AVX-VNNI-INT8 和 AVX-NE-CONVERT。
  • 支持的新 Intel CPU 目标是 Raptor Lake、Meteor Lake、Emerald Rapids、Sierra Forest、Granite Rapids 和 Grand Ridge。
  • 提供对带有 -march=znver4 的 AMD Zen 4 处理器的初始支持。
  • LLVM 的 RISC-V 后端增加了对许多新扩展的支持,例如 Zca、Zbe、Zbf、Zbm、Zbp、Zbr 和 Zbt。
  • LLVM 16 添加了对 Arm Cortex-A715 / Cortex-X3 / Neoverse-V2 内核的支持。
  • LLVM 16 的 AArch64 后端现在支持函数多版本控制 (FMV),允许采用自定义代码路径,以根据运行时 CPU/功能优化性能。
  • 删除了对 Armv2A / Armv2A / Armv3 / Armv3M 架构的支持。
  •  LLVM 16 的 libc++ C++ 标准库增加了对更多 C++20 和 C++23 功能的支持。

更多内容可以查看 LLVM 16 的 Release Notes,可从此处下载 LLVM 16.0 源代码和各种二进制文件。

LLVM Discourse 上还有一个简短的发布公告。


相關推薦

2022-09-09

可参考 GNU extensions to the C and C++ languages 在 LLVM 15.0 发布后,LLVM/Clang 16.0 版本即将迎来一个重大变化: GNU++17 将成为 LLVM 默认的 C++ 和 ObjectiveC++ 版本。 Clang 的 C++17 支持非常稳定了,只有一些微小的细节需要修复。事

2023-12-09

也可以通过编写脚本进行半自动的生成。 CMake 3.28.0 现已发布,一些亮点更新内容如下: Ninja Generators 和 Visual Studio Generators for VS 2022 及更新版本,结合 MSVC 14.34 工具集(随 VS 17.4 提供)及更新版本、LLVM/Clang 16.0 及更新版本

2022-11-23

嵌入式 Linux 部署的热门选择。 目前 Alpine Linux 3.17 发布了,此版本仍然由 Linux 5.15 LTS 内核系列提供支持,但把默认的 OpenSSL 实现升级到 OpenSSL 3.0 版本,此外,Rust 现在可用于所有支持的架构。 Alpine Linux 3.17 还附带了一些

2022-09-22

LLVM 15.0.1 发布了,此版本包含 LLVM 15.0 的第一批修复。 LLVM 15.0 引入了许多安全缓解措施,同时正在为最新规范开发新的 C 和 C++ 功能,其他更改包括: 实验性 Microsoft HLSL / DirectX 支持, RISC-V 更新, 更多 OpenMP 5.1 功能,

2023-04-16

个先进的全局类型推理算法来解决。  Crystal 1.8.0 已发布,此版本的一些修改: 正则表达式:PCRE2 此版本中一个重大且必要的更改是 PCRE2 成为 Regex ( #12978 ) 的默认引擎。 1.7 中添加了对 PCRE2 的支持,并在 1.7.3 中稳定下来。

2022-11-14

Mold 1.7 现已发布。Mold 是现有 Unix 链接器的快速替代品,它比 LLVM lld 链接器快几倍。 开发人员 Rui Ueyama 称,一直以来他都在全职从事该项目,并已持续了两年。原本以为随着项目的流行,或许可以获得一定的金钱收益,但

2024-03-10

FreeBSD 13.3 已发布,该版本主要更新了组件和驱动程序,同时提升了 WiFi 驱动程序稳定性。 主要变化 LLVM 和 clang 编译器更新至 17.0.6 版本 OpenSSH 更新至 9.6p1 版本 Sendmail 更新至 8.18.1 版本 ZFS 

2023-11-18

截至目前,IvorySQL已成功发布10个版本,并最新推出了IvorySQL 3.0。此版本不仅继承了PostgreSQL 16.0的最新内核和功能,还扩展了更多企业级特性。 相比于PostgreSQL社区版,IvorySQL 3.0在兼容性和易用性方面实现了显著提升,同时为适

2022-07-13

与 GNU Binutils 2.34 添加可选的 HTTP 服务器类似,LLVM 15 正在为 debuginfod 添加一个基本的 Web 服务器。开发团队在过去的一周里合并了一个用于 LLVM 的最小 HTTP 服务器;围绕 cpp-httplib,一个 C++ header-only HTTP/HTTPS 服务器和客户

2022-12-10

端。 开发者 Arthur Cohen 表示 Gccrs 仍处于实验性阶段,在发布之前会进行大量更改。 GCC Rust 的代码仍然需要更仔细的审查。按照计划,它有可能作为 GCC 13 的一部分而亮相,GCC 13 将于 2023 年 4 月左右发布稳定版,其对 Rust 语言

2023-12-18

凹语言(凹读音“Wā”)是 针对 WASM 平台设计的通用编程语言,同时支持 Linux、macOS 和 Windows 等主流操作系统和 Chrome 等浏览器环境,同时也支持作为独立 Shell 脚本和被嵌入脚本模式执行。 凹语言是国内 Gopher 发起的纯社区构

2022-05-20

序进行现代化改造。同时包含了 Python 3.9,带来了更快的发布时间表、性能提升、字典联合运算符以及更一致和稳定的内部 API。 提供新的 Image Builder 功能,包括支持裸机部署和自定义文件系统设置,以帮助组织在大规模部署和

2023-04-07

LLVM 16.0.1 已发布,此版本是 LLVM 16 大版本的修复版本,处理了一些版本早期的 Bug,并提供了一些新的功能。 LLVM 16 采用了新的发布时间表,每 2 周发布一个新的错误修复版本 (14.0.x)。14.0.5 是计划中的最后一个版本,但如果在 14

2024-03-27

也可以通过编写脚本进行半自动的生成。 CMake 3.29.0 现已发布,一些亮点更新内容如下: Windows 上的 LLVM/Clang GNU-like 前端(“clang++”)现在可用于编译“CUDA”语言源。 基于 TI Clang 的编译器现在支持编译器 id“TIClang