LLVM 项目博客

LLVM 项目新闻和来自一线的详细信息

LLVM 每周 - 第 120 期,2016 年 4 月 18 日

欢迎来到 LLVM 每周的第 120 期,这是一份每周新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的进展。LLVM 每周由 Alex Bradbury 制作。订阅未来期刊,请访问 http://llvmweekly.org,并将它转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送到 [email protected],或在 Twitter 上发送到 @llvmweekly@asbradbury

本期文章的正式地址 可以在 llvmweekly.org 上找到.

来自网络的新闻和文章

本周出现了两篇关于 LLVM 和配置文件引导优化的文章。深入了解 John Engelen 关于 使用 PGO 优化 D 的虚函数调用 的文章,然后阅读 Geoffroy Couprie 关于 Rust 中的 PGO 的文章。

下一个剑桥(英国)社交活动 将于 4 月 20 日下午 7:30 在剑桥蓝举行

Alex Denisov 撰写了一篇博客文章 围绕使用 LLVM 构建突变测试系统的想法

在邮件列表上

LLVM 提交

  • AtomicExpandPass 了解到如何将各种原子操作降低到 __atomic_* 库调用。最终的目标是将所有原子降低从 Clang 移动到 LLVM。 r266115

  • 目标现在可以定义内联阈值乘数,例如在调用非常昂贵的平台上增加内联的可能性。 r266405

  • DICompileUnit 和 DISubprogram 之间的所有权已反转。这可能会破坏您对树外后端的测试,但提交包含指向 Python 脚本的链接,用于更新您的测试用例。 r266446

  • llvm-readobj 了解到如何打印输入 ELF 文件的 .gnu.hash 的直方图。 r265967

  • Swift 调用约定(在 ARM、AARch64 和 X86 上)的更多特定于目标的支持已落地。此外,调用者保存寄存器用于 swiftself 参数。 r265997r266251

  • 引入了一个新的 allocsize 属性。这表明给定函数是分配函数。 r266032

  • analyzeSiblingValues 已被新的低复杂度实现所取代,以减少编译时间。 r266162

  • AMDGPU 后端获得了 GlobalISel 的骨架实现。 r266356

  • 除了 C API 之外,所有对 getGlobalContext 的使用都已删除。 r266379

Clang 提交

  • Clang 获得了对 GCC ifunc 属性的支持。 r265917

  • 为了与 MSVC 兼容,实现了 __unaligned 类型限定符。 r266415

  • 对 C++ 核心准则 Type.6 的支持:始终初始化成员变量在 clang-tidy 中完成。 r266191

  • 添加了一个新的 clang-tidy 检查器,用于检查可疑的 sizeof 表达式。 r266451

其他项目提交

  • 新的 ELF 链接器中应用重定位的方式已重新设计。 r266158

  • ELF LLD 现在支持使用 splitCodeGen 为 LTO 进行并行代码生成。 r266484

  • 对 LLDB 中的 SystemZ 上的 Linux 的支持已落地。 r266308