LLVM 每周 - #95, 2015 年 10 月 26 日
欢迎来到 LLVM 每周的第九十五期,这是一份每周发布的通讯(每周一发布),涵盖了 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 提供。订阅未来的期刊,请访问 http://llvmweekly.org,并将其转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送到 [email protected],或在 Twitter 上发送到 @llvmweekly 或 @asbradbury。
本期文章的规范主页 可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
C++ 标准化委员会刚刚结束了最近的会议,STL(Stephan T. Lavavej)已 提供了有用的摘要。Herb Sutter 也 发布了行程报告。
HHVM 团队发布了有关 LLVM 代码生成在 HHVM 中的现状的更新。他们设法让 LLVM 的性能与他们的自定义后端相当,但目前不会将 LLVM 后端部署到生产环境中。他们不再积极开发 LLVM 后端,但希望确保其不会退化。
Hal Finkel 建议在 11 月 15 日晚上在奥斯汀举办 LLVM 社交活动。由于 LLVM 在 HPC 研讨会,应该会有很多 LLVM 用户。
在邮件列表上
本周 LLVM 社区中最大的讨论是关于 对 Apache 许可的拟议更改。其中一个动机是,一些公司认为 LLVM 开发者政策中专利部分的措辞阻碍了他们的贡献,尽管请查看链接的邮件以了解完整摘要。人们担心 Apache 2 与 GPLv2 不兼容,以及 许可证复杂性可能会阻止贡献者,例如 FreeBSD 社区。
Robert Cox 发表了关于 RFC 以添加 LLVM 生成内联报告的能力。这份报告将详细说明内联发生的位置以及原因。初步反馈是积极的。
有关即将举行的 LLVM 开发者会议的小组讨论会的更多信息已经发布。Kristof Beyls 将主持一个关于 性能跟踪和基准测试基础设施 的小组讨论会,John Criswell 将主持一个关于 LLVM IR 上的复杂程序分析 的小组讨论会,Paul Robinson 将主持一个关于 在不淹没的情况下在 下游生存 的小组讨论会。
Gaël Jobin 对一个关于在后端处理内联函数的问题给出了 极好的答案。
Louis Brandy 是 Facebook 的一名员工,他正在 开始为他们的 C++ 代码库启用 Clang 模块支持。他对任何人在逐渐将模块映射添加到大型代码库方面的经验感兴趣。
已经做了很多工作来扩展 Clang 的静态分析器以支持过程间分析。这个主题 讨论了当前状态和未来方向。它没有达到预期的效果(在每秒检测到的错误方面),这个主题讨论了人们对此的想法。
LLVM 提交
引入了
TargetLowerBase::LibCall
LegalizeAction。这允许后端控制它们是否更喜欢扩展或转换为 libcall。 r250826。Hexagon 后端继续积累复杂的特定于目标的优化。HexagonBitSimplify 继续执行许多转换以执行简化、冗余代码消除等。 r250868。
新的 AliasAnalysis 基础设施获得了可选的 'external' AA 包装器传递,以允许用户合并外部 AA 结果。补丁中包含的单元测试提供了一个关于如何使用它的好例子。 r250894。
CodeGenPrepare 现在可以将 select 指令转换为分支并将昂贵的操作数下沉。 r250743。
循环旋转现在可以在 MachineBlockPlacement 中使用配置文件数据来进行决策。 r250754。
ValueTracking 现在有一个
isKnownNonEqual
谓词。 r251012。
Clang 提交
添加了对预期的 C++1z 协程特性的基本支持(目前是解析和基本语义分析)。 r250980, r250985, r250993。
-fvisibility=internal
现在是-fvisibility=hidden
的别名,因为 LLVM 目前不支持内部可见性。 r250954。Clang 的静态分析器学会了将散列与找到的问题相关联。这个散列旨在对代码更改具有弹性,因此对于抑制误报很有用。 r251011。