LLVM 项目博客

LLVM 项目新闻和来自战壕的细节

LLVM 每周 - #126,2016 年 5 月 30 日

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

本期文章的规范来源 可以在 llvmweekly.org 上找到

这个周末我一直在搬家,所以如果您发现本期文章比平时略微不那么全面,请接受我的歉意。

来自网络的新闻和文章

基于 LLVM 的 Python 编译器 Pyston 发布了 0.5 版。主要变化是切换到引用计数和 NumPy 兼容性。

我不想变成“C++ 每周”,但我认为这个受众很欣赏 C++ 特性的趣味性使用。 Verdigris 是一个仅包含头文件的库,允许您在没有 moc 预处理器的情况下使用 Qt5。

面向 第三届 LLVM 编译器基础架构在 HPC 中的研讨会 的征文公告已发布。论文提交截止日期为 9 月 1 日。研讨会将于 11 月 14 日在盐湖城举行,与 SC16 同时举行。

在邮件列表上

  • Vivek Pandya,一名正在进行过程间寄存器分配的 GSoC 学生,已分享了他的 每周状态报告

  • Rafael Espíndola 提出 创建位代码符号表

  • 关于 一些 更新,关于 PGI Fortran 前端的开源进展。

  • Elena Lepilkina 提出了一些 FileCheck 的增强功能。有人对提议的扩展的实用性提出了疑问。Sergey Yakoushkin 提供了更多关于 这些功能如何在商业代码库中使用 的背景信息。正如 Elena 指出的那样,这些功能并不需要全部一次性上游(或者根本不上游),而且大多数是独立的。

  • Lang Hames 发布了一条关于 即将到来的 ORC 和 MCJIT 的 API 更改 的预警。

  • Sean Silva 启动了关于 IRPGO 状态 的讨论。您可能会问什么是 IRPGO?这是通过在 LLVM IR 级别进行检测来执行的配置文件引导优化,而不是 FEPGO,其中检测是由前端(例如 Clang)添加的,在降低到 IR 之前。Sean 希望将 IRPGO 设为除 Apple(可能需要更长的弃用期限)之外的所有平台的默认值。许多后续评论讨论了确保所有平台都能协同前进的可能性,以及确保存在一个合理的标志来选择前端或中间端 PGO。

  • 寄存器压力集到底是什么? Quentin ColombetAndrew Trick 都为我们提供了答案。

LLVM 提交

  • 添加了涵盖受检算术的新优化。 r271152r271153

  • 高级展开分析现在默认启用。 r270478

  • 'Kaleidoscope' 教程的新章节的初始版本已提交。这描述了如何使用 ORC 构建 JIT。 r270487r271054

  • 为了增加可以重叠的堆栈变量的数量,LLVM 的堆栈着色分析数据流分析已重写。 r270559

  • EfficiencySanitizer 的部分开始落地,特别是其工作集工具的检测。 r270640

  • SelectionDAG 了解了如何扩展较大整数类型的乘法,而没有标准的运行时调用来处理它。 r270720

  • LLVM 现在将通过从 llvm.loop 元数据中读取起始位置来报告更准确的循环位置,以优化备注。 r270771

  • 汇编指令现在支持符号表达式,与 GNU 汇编器的行为相匹配。 r271102

  • 插件使用的符号现在可以在 Windows 上自动导出,这提高了 Windows 上对插件的支持。有关完整描述,请参阅提交消息。 r270839

Clang 提交

  • Sparc 的软件浮点现在已通过 -msoft-float 在 Clang 中公开。 r270538

  • Clang 现在支持 -finline-functions 参数,以单独启用内联,而不是标准的 -O 标志。 r270609

其他项目提交

  • LLD 中的 SectionPiece 在 64 位平台上现在小了 8 字节。这将使用调试信息链接 Clang 的时间提高了 2%。 r270717

  • LLD 已用哈希表查找替换了二进制搜索的使用,这使得使用调试信息链接 Clang 的速度提高了 4%。 r270999

  • LLDB 现在支持 AArch64 紧凑展开表,如 iOS、tvOS 和 watchOS 上所使用的那样。 r270658