LLVM 每周 - 第 113 期,2016 年 2 月 29 日
欢迎来到 LLVM 每周的第 113 期,这是一份每周发布的新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 为您带来。订阅未来的期刊,请访问 http://llvmweekly.org,并将它转发给您认为可能感兴趣的任何人。请将任何建议或反馈发送至 [email protected],或在 Twitter 上关注 @llvmweekly 或 @asbradbury。
来自网络的新闻和文章
LLVM 和 Clang 3.8RC3 已标记。
EuroLLVM 2016 不到一个月。如果您想参加,请务必注册。
Red Hat 博客发布了 即将发布的 GCC 6 版本的新功能摘要。
Meeting C++ 博客发布了 对下一次 C++ 委员会会议的部分提案的总结。
在邮件列表上
Chandler Carruth 建议 将 LLVM 测试套件存储库迁移到 Github。针对一些疑虑,Chris Lattner 指出,在这种情况下使用 GitHub 并不意味着要放弃当前的开发工作流程,它只是意味着它可以被 GitHub 风格的拉取请求增强,以供那些更喜欢它的人使用。Chandler 总结了该线程,并提供了后续步骤的列表。
Sanjoy Das 指出了
available_externally
链接类型可能存在的一个潜在的健壮性问题。这引发了很长时间的讨论。James Knight 指出,在共享库中使用普通函数也可能发生同样的问题。Hal Finkel 和 Chandler Carruth 在解决这个问题的最佳方法上展开了讨论。Philip Reames 询问 同一个基本块中一个 PHI 依赖另一个 PHI 是否有效。它目前被验证器接受,但可能不应该接受。到目前为止,还没有人认为它应该是有效的。
Matthias Braun 启动了一个关于 更好地定义保留寄存器和不可分配寄存器的语义 的讨论。经过更多讨论后,他继续发布了 修订后的定义。
David Li 发布了 支持进程内合并配置文件数据的提议。
LLVM 提交
Sparc 后端现在包含了 Sparc v8 手册中定义的所有寄存器和指令的定义。 r262133。
LLVM 获得了一个基本循环通行证管理器,但它目前只包含虚拟通行证。 r261831。
许多 TargetInstrInfo 谓词现在使用 MachineInstr 的引用而不是指针。 r261605。
WebAssembly 后端获得了对用户空间堆栈的红区支持。 r261662。
Clang 提交
使用
-fwhole-program-vtables
标志,Clang 中现在可以使用全程序 vtable 优化。 r261767。Clang 获得了
__builtin_canonicalize
,它返回浮点数的平台特定规范编码。 r262122。添加了一个 hasAnyName 匹配器。 r261574。
指针算术检查器已得到改进,可以减少误报。 r261632。
其他项目提交
新的 ELF 链接器获得了对相同代码折叠 (ICF) 的支持。这将 LLD 二进制文件的大小减少了 3.6%,Clang 二进制文件的大小减少了 2.7%。如提交消息中所述,这并不是 GNU gold 中实现的 ICF 的“安全”版本,因此如果输入依赖于两个不同的函数始终具有不同的地址,则会导致问题。 r261912。
Polly 的树现在包含一个
update_check.py
脚本,这可能对其他 LLVM 开发人员有用。它通过使用RUN:
命令的实际输出更新CHECK:
行来更新基于 FileCheck 的 lit 测试。 r261899。LLDB 获得了一组新的插件来帮助调试 Java 程序,特别是 Android 运行时 JIT 的 Java 代码。 r262015。
LLVM 的 openmp 实现现在支持新的 OpenMP 4.5 关联 API。 r261915。
新的 ELF 链接器获得了对
-r
命令行选项的支持,该选项生成可重定位的输出(部分链接)。 r261838。LLVM 测试套件中 SPEC 的 CMake/lit 运行器现在可以运行 C CPU2006 浮点基准测试(但不能运行 Fortran 基准测试)。 r261816。
旧的 ELF 链接器已从 LLD 中删除。 r262158。