LLVM 初步支持 Fat LTO 对象


LLVM  Git 仓库的代码提交记录显示,它已初步支持 Fat LTO 对象。预计今年秋季的 LLVM/Clang 17 将提供"-ffat-lto-objects"支持。

 

据介绍,为编译器启用 Fat LTO 对象支持可以让编译器 IR 与最终目标代码一起保存。因此,这些 "fat" 对象可以用于开发构建和优化构建的生产,但代价是增加了对象大小和更长的构建时间。然后在链接时间阶段确定是否丢弃 link-time 优化 (LTO) 信息,或者是否使用它。

GCC 支持 Fat LTO 对象已经有一段时间,本周 LLVM 也提供了初步支持,其实现与 GCC 类似。添加初步 Fat LTO 支持的 commit 解释道:

“Fat LTO 对象包含 LTO 兼容的 IR 以及生成的目标代码。该特性为开发者提供推迟是否使用 LTO 的 link-time。GCC 已提供此特性。”

按照 LLVM 的发布节奏,当 LLVM 17 于 9 月份左右首次亮相时,这将与许多其他新的编译器功能一起发布。


相關推薦

2022-11-23

年开始,当使用 LLVM 的 Clang 编译器构建 Linux 内核时,已支持为内核构建启用链接时优化 (LTO, link-time optimizations)。而对于使用 GCC 构建 Linux 内核,仍缺少 LTO 支持,近日发布的一系列补丁是实现此目标的最新尝试。 Clang 的 LT

2023-09-12

多元共进|2023 Google 开发者大会精彩演讲回顾 FreeBSD 14 Beta 1本周末可用,预计在10月底前稳定发布。 FreeBSD 14带来了许多硬件支持改进和相比于FreeBSD 13系列的大量内核增强。值得注意的是,FreeBSD 14是最后一个支持32位系统的版

2022-09-05

Mold 是现有 Unix 链接器的快速替代品,它比 LLVM lld 链接器快几倍。 目前 Mold 发布了最新版本 1.4.2 ,此版本带来以下新功能和各种错误修复: 新功能和错误修复 [RV32] 修复了 32 位 RISC-V 的几个问题。Mold 现在可以为目标构建

2022-02-11

款支持此 ISA 的硬件。 虽然开源 LLVM 编译器堆栈已提供初步的 LoongArch ISA 支持,补丁也已被合并,但对龙芯开发团队而言,还有许多工作需要完成,以改进 LoongArch 的编译器工具链和 Linux 内核支持,尤其是在代码生成方面。龙

2022-05-20

Red Hat Enterprise Linux 9 现已全面上市。此版本为支持混合云创新提供了灵活性、稳定性和可靠性。在物理、虚拟、私有和公共云和边缘部署中提供一致的体验,更快地部署应用程序和关键工作负载。 下载地址:https://access.redhat.com

2022-04-09

行时和规范等,详情查看 release note。 值得关注的变化 初步支持 WebAssembly 1.4.0 版本提供了对 WebAssembly 支持的 MVP 实现(最小可行性产品),目前只支持将 Crystal 程序编译为 WebAssembly,以及与基于 WASI 的 LibC 连接,尚未支持浏览

2023-03-20

括更快的 LLD 链接、Zstd 压缩的调试部分、稳定其 LoongArch 支持、默认为 Clang 的 C++17 等等。 下面是 LLVM 16 的主要变化: Clang 的默认 C++ 标准现在是 GNU++17,而不是 GNU++14/C++14  实现更多 C++20 功能,以及对现有 C++20 功能的

2022-12-17

能集成到 Linux 内核中。同年,在 Linux 内核 5.4 版本中,初步支持 exFAT 文件系统。 自进入 Linux 内核后,exFAT 文件系统便不断获得来自三星、索尼等电子供应商的优化,比如今年 4 月索尼为 exFAT Linux 驱动提供了 7

2022-10-27

Ember 项目近日发布了 Ember.js 和 Ember CLI 的 4.8 版本。 Ember.js 4.8 的变化 Ember.js 4.8 是一个增量的、向后兼容的 Ember 版本,包含 bug 修复、性能改进。 错误修复 Ember.js 4.8 引入了 1 个错误修复: 修复了自 4.3.0 以来调用 RouteInfo

2022-12-11

Hopper 和 Ada Lovelace GPU 的新功能、更新 C++ 方言、使 JIT LTO 支持官方、新的和改进的 API,以及各种其他功能。 CUDA 12.0 为 NVIDIA 的 Hopper 和 Ada Lovelace 架构的许多特性公开了可编程功能。 支持将虚拟内存管理 API 与标记为 CUDA_

2022-12-04

33 LLVM 后端支持多返回值, 点亮 Arduino 单片机 已经初步 图灵完备

2023-10-16

经从基本系统中删除 延伸阅读:FreeBSD 14 Beta 1 发布,初步支持 WiFi 6,更新 LLVM 工具链

2023-01-11

Opera 还启用了最大的链接时间优化。Link Time Optimization(LTO)是程序间优化(IPO)的一种形式,其目的是提高包含许多小巧但又频繁使用的功能的程序的性能。LTO 的实现方式允许这些优化能够作为一个单一的模块覆盖程序的所有

2022-11-02

现自托管后,Zig 的下一步是什么? Zig 重要里程碑:已初步实现自举