LLVM 17.0已经发布,这是其新闻

LLVM 徽标

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

经过六个月的发展 LLVM 17.0新版本已经推出,其中各种改进、更改、错误修复,最重要的是,Clang 17.0 中实现了各种重要方面。

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

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

LLVM 17.0的主要新功能

在这个新版本的 LLVM 17.0 中,需要考虑各个相关方面,例如 X86 后端的改进, 好吧,他补充了o 支持扩展 指令集架构 ISA SHA512、ISA SM3、ISA SM4 和 ISA AVX-VNNI-INT16。

除此之外,它还凸显了 改善 架构后端能力 RISC-V 自从 添加了对 si Five-x280 处理器的支持。

我们可以发现的另一个变化是 实现了对 XTH 处理器扩展的支持*,以及与扩展的兼容性 LSX、LASX、LVZ 和 LBT ISA 到LoongArch架构的后端。

改进了 AArch64、ARM、WebAssembly、MIPS、PowerPC、AMDGPU 架构的后端,扩展了 LLD 链接器功能,并向 LLDB 调试器添加了新的“注册信息”命令,以显示有关记录的所有已知信息。

关于 Clang 17.0 的改进,需要强调的是,未来 C 标准 C2x 中定义的功能(例如 bool、static_assert、aligns、alignof 和 thread_local 关键字)已经实现,以及指定空方括号的能力 «{ } » 用于初始化为零值。

代码o C 提供转发“goto”表达式的能力 在通过间接选择标签的“asm”块内,添加了对 C 扩展的支持,该扩展允许使用类型而不是表达式作为“_Generic”中的第一个操作数,此外还允许 C 语言中的常量表达式使用结构、联合以及用“const”属性声明的数组。

关于C++20标准相关的改​​进,提到现在 在除 Windows 之外的所有平台上,都完全支持协程, 此外,还实现了常量表达式比较操作的附加要求。

还强调的是,现在保证 lambda 模板的正确解析 紧接在模板参数之后指定,并在块中包含具有依赖类型的变量。 保留在用户文字中使用双下划线,并不鼓励在名称中带有保留标识符的函数定义中使用“operator”关键字

至于 与 C++23 标准相关的改​​进 ,据说它正处于 ISO 批准的最后阶段,因为 更改了 lambda 函数中最终返回类型的范围 首先查看挂钩,然后查看周围的文字。

其他变化 脱颖而出:

  • 添加了使用定义多维数组的功能
  • 使用“-O0”优化模式编译 C++ 应用程序时,调用的代码生成已得到改进。
  • 添加了对 NO_COLOR 环境变量的支持以禁用输出颜色。
  • 静态分析和诊断工具得到了显着扩展,例如,添加了新的有符号整数溢出检查、lambda 模板校正、constexpr 表达式、空指针比较、未初始化结构的使用等。
  • Libc++ 库继续实现对 C++20 和 C++23 标准功能的支持,同时也开始提供对 C++26 规范的支持。
  • 在头文件和模块之间的连接描述中添加了对表达式“requires cplusplus23”的支持。

最后,如果您有兴趣能够了解更多,可以在 以下链接。


发表您的评论

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

*

*

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