LLVM 15.0 发布,具有安全功能、实验性 DirectX 后端、新 AMD GPU
admin
2023-08-04 11:57:05
0

LLVM 15现在已准备好作为这个开源编译器堆栈的半年大更新推出。LLVM 15.0、Clang 15.0 和其他子项目在 2022 年夏季取得的成就有很多值得展示的地方。

LLVM 15.0 带来了许多与 x86 相关的新安全功能、对 Armv9 的支持、Microsoft 的实验性 HLSL 和 DirectX 工作、在其着色器编译器后端中支持新的 AMD RDNA3 和 GFX940、现在支持更多 RISC-V 指令,以及各种这个庞大的编译器堆栈中的其他增强功能。

image.php_-18image.php_-18
LLVM 15 中有许多新的 x86 安全功能/缓解措施,从直线推测到 Retbleed 位。

LLVM 15.0 今天早上被标记,可以从GitHub下载。

在 Clang C/C++ 前端,Clang 15.0 的亮点包括:

– 支持 x86/x86_64 上的“-fzero-call-used-regs”选项,该选项类似于已添加到 GCC 的选项。-fzero-call-used-regs 选项可用于限制 ROP / COP / JOP 攻击,方法是在函数返回之前清零选定的寄存器类别。

– 支持x86/x86_64 上的 \”-mharden-sls=\” 选项以进行直线推测强化。

– 支持“-mfunction-return=thunk-extern”选项,Linux 内核将使用该选项作为 Retbleed 缓解措施的一部分。

– 对于支持 SSE2 的所有目标,支持 x86 上的 _Float16 类型。_Float16 类型是 AVX-512 FP16 的原生类型或使用浮点数进行模拟。

– 支持随机化 C 中的结构布局。这是一种编译时强化技术,可以使用“randomize_layout”属性激活。

– 对 Microsoft 的 HLSL 着色器语言的实验性支持。Clang 15.0 中的 HLSL 仍然是“高度实验性的”和“不完整的”。这是 Microsoft将 DirectX 和 HLSL 添加到上游 LLVM/Clang 代码库的努力的一部分。

– 添加了 -fexperimental-max-bitint-width= 选项以控制 _BitInt 类型的最大允许位宽,超出默认的 128 位。还添加了许多其他新的编译器标志,

– 支持更多的 MSVC 编译指示以及在 clang-cl 中支持更多与 MSVC 兼容的标志,以支持 Windows。

– 围绕仍然成熟的 C2X 语言支持添加了许多功能。此版本实现的 C2X 功能包括“noreturn”属性、N 位整数的基本类型、u8 字符前缀、删除对隐式函数声明的支持等。

– 围绕模块的附加 C++20 功能支持、成员函数的 ABI 隔离等。

– 支持一些 C++2b 特性,如多维下标运算符、定界转义序列、命名通用字符转义等。

– OpenMP 5.1 支持原子比较和原子比较捕获。

– 更新 RISC-V 的向量内在函数,支持 RISC-V 标量加密“K”扩展、CLZ / CTX 指令等。

– 许多错误修复和诊断/编译器警告改进。

除了 Clang C/C++ 编译器前端,LLVM 15.0 的其他更改包括:

– 支持 Armv9-A、Armv9.1-A 和 Armv9.2-A 架构。还添加了 Arm Cortex-M85 CPU 支持。

-实验性 DirectX 后端以及 Clang 中提到的 HLSL 更改。DirectX 后端针对用于 DirectX GPU 着色器程序的 DXIL 架构。

– 支持 AMD Zen 2 和更新的 CPU 上的 RDPRU 指令。

– Debuginfod 的 HTTP 服务器。

-初始 SPIR-V 后端工作.

– 在支持 SSE2 的 x86 CPU 上支持半类型,作为添加到 Clang 的 _Float16 类型的一部分。

– LLVM 现在对 LLVM IR 使用不透明的指针。

– AMD 适用于 RDNA3/GFX11 显卡和 GFX940 适用于下一代 CDNA。

– 使用 AMDGPU 后端支持 8 位和 16 位原子加载和存储。

LLVM 15.0 还包括对 libc++ 15.0 子项目的许多更新和添加。

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
Hive OS 部署 PXE ... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何在Instagram上扫描... 如何在Instagram上扫描名称标签/ QR? 总而言之,您可以通过大约四种不同的方法来扫描这些I...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
farols1.1.501.0... faro ls 1.1.501.0(64bit)可以卸载,是一款无需连接外部PC机或笔记本计算机即可...
Hive OS 新建飞行表的方... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...