LLVM 16.0 已发布,这些是它的新闻

LLVM 徽标

LLVM 是一个用于开发编译器以及帮助构建新的编程语言和改进现有语言的框架。

经过短短六个月的开发, 发射 项目的新版本 LLVM 16.0,其中实施了大量更改和改进的版本。

对于那些不熟悉 LLVM 的人,你应该知道这个 是 GCC 兼容的编译器 (编译器、优化器和代码生成器)将程序编译成类似 RISC 的虚拟指令中间位码(具有多级优化系统的低级虚拟机)。

生成的伪代码可以在程序执行时由 JIT 编译器转换为机器指令。

LLVM 16.0的主要新功能

在这个呈现的新版本中,我们可以发现几个重要的改进 在 16.0 中, 其中默认的 C++/ObjC++ 标准脱颖而出, 设置为 gnu++17 (以前是 gnu++14),其中 暗示默认支持带有 GNU 扩展的 C++17 特性. LLVM 代码中允许使用 C++17 标准中定义的元素。

另一个突出的变化是它已被添加 支持 Cortex-A715、Cortex-X3 和 Neoverse CPU AArch2 后端的 V8.3、Armv64 扩展和多版本功能。
La 平台兼容性 Armv2、Armv2A、Armv3 和 Armv3M 已停产 在 ARM 架构后端中,不能保证正确的代码生成。 添加了为使用复数的指令生成代码的功能,并添加了 架构支持 指令集 (ISA) AMX-FP16、CMPCXADD、AVX-IFMA、AVX-VNNI-INT8、AVX-NE-CONVERT 到 X86 后端。

除此之外, 增加了构建 LLVM 的要求, 此外,构建现在应该与 C++17 标准兼容,即构建至少需要 GCC 7.1、Clang 5.0、Apple Clang 10.0 或 Visual Studio 2019 16.7。

另一方面也凸显 改进了 MIPS、PowerPC 和 RISC-V 架构的后端,以及支持将 LoongArch 架构的 64 位可执行文件调试到 LLDB 调试器,并改进了对 COFF 调试符号的处理。

其他变化 脱颖而出:

  • 在 Libc++ 库中,主要工作集中在实现对 C++20 和 C++23 标准新特性的支持。
  • 通过并行化地址重定位扫描和段初始化操作,LDD 链接器中的链接时间已显着减少。 添加了对使用 ZSTD 算法的节压缩的支持。
  • 还突出显示了使用 C++20 标准实现的高级功能。
  • 捕获 lambda 函数中的结构化链接。
  • 表达式中的相等运算符。
  • 能够在某些情况下不指定 typename 关键字,
  • 在括号之间添加初始化的允许性(“Aggr(val1,val2)”)。
  • 实现了未来 C++2b 标准中定义的功能。
  • char8_t 类型提供的支持,
  • 扩展了允许在“\N{…}”中使用的字符范围,
  • 添加了在声明为 constexpr 的函数中使用声明为“static constexpr”的变量的功能。
  • 未来 C2x C 标准中定义的已实现功能:
  • 添加了对加载多个配置文件的支持(首先加载默认配置文件,然后是通过“–config=”标志指定的配置文件,现在可以多次指定)。
  • 更改了默认配置文件的加载顺序:clang 尝试首先加载文件- .cfg 如果找不到它,它会尝试加载两个文件.cfg 和.cfg.
  • 添加了一个新的构建标志“-fcoro-aligned-allocation”用于常规帧对齐分配。
  • 添加了“-fmodule-output”标志以启用标准 C++ 模块的单阶段构建模型。
  • 添加模式“-Rpass-analysis=stack-frame-layout”以诊断堆栈帧布局问题。
  • 添加了一个新的 __attribute__((target_version("cpu_features"))) 属性并扩展了 __attribute__((target_clones("cpu_features1″,"cpu_features2",…))) 属性的功能以选择 CPU AArch64 提供的特定版本的功能.
  • 增强的诊断工具:
  • 添加了警告“-Wsingle-bit-bitfield-constant-conversion”以在将一个分配给一位带符号的位域时捕获隐式截断。
  • 未初始化的 constexpr 变量的扩展诊断。
  • 添加了“-Wcast-function-type-strict”和“-Wincompatible-function-pointer-types-strict”警告以捕获转换函数类型时的潜在问题。

最后 如果您有兴趣了解更多信息, 您可以在中查看详细信息 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。