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 构建突变测试系统的想法。
在邮件列表上
James Knight 请求一种在提交更改之前测试更改的方法。Renato Golin 给出了一个 详细的回复。
Eric Fiselier 分享了一个 关于打包提议的 libc++ 文件系统库的 RFC。
Teresa Johnson 分享了一个 关于 ThinLTO 分布式后端接口的 RFC。
Jeroen Dobbelaere 正在询问 是否有兴趣在比利时鲁汶举办 LLVM 社交活动。
Mingwha Wang 询问 LLVM 是否支持 轮廓。您需要 查看 CodeExtractor。
LLVM 提交
AtomicExpandPass 了解到如何将各种原子操作降低到
__atomic_*
库调用。最终的目标是将所有原子降低从 Clang 移动到 LLVM。 r266115。目标现在可以定义内联阈值乘数,例如在调用非常昂贵的平台上增加内联的可能性。 r266405。
DICompileUnit 和 DISubprogram 之间的所有权已反转。这可能会破坏您对树外后端的测试,但提交包含指向 Python 脚本的链接,用于更新您的测试用例。 r266446。
llvm-readobj 了解到如何打印输入 ELF 文件的 .gnu.hash 的直方图。 r265967。
Swift 调用约定(在 ARM、AARch64 和 X86 上)的更多特定于目标的支持已落地。此外,调用者保存寄存器用于 swiftself 参数。 r265997,r266251。
引入了一个新的
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。