LLVM 每周 - #55, 2015 年 1 月 19 日
欢迎来到 LLVM 每周的第五十五期,这是一份每周新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的发展情况。LLVM 每周由 Alex Bradbury 带来。在 http://llvmweekly.org 订阅未来期,并将其传递给您认为可能感兴趣的任何人。请将任何提示或反馈发送到 [email protected],或在 Twitter 上发送到 @llvmweekly 或 @asbradbury 。
在 LLVM 的世界里,这一周似乎非常繁忙,特别是在邮件列表上的讨论方面。由于旅行等原因以及大量的流量,我无法对邮件列表讨论进行太多总结,我担心。
此期的规范主页 可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
LLM/Clang 3.6 已分支,随后,3.6 RC1 已标记。
LLVM/Clang 3.5.1 似乎已 悄然发布。
将于 4 月 13-14 日在英国伦敦的 Goldsmiths College 举行的 EuroLLVM 2015 的注册已 开放。
上次 LLVM 开发者会议的所有幻灯片和视频都已 上线,包括来自苹果员工的幻灯片和视频。
在邮件列表上
Ahmed Bougacha 发布了关于 将整数饱和内在函数添加到 LLVM 的 RFC。在随后的线程中,关于添加内在函数是否必要以及最佳做法有多个问题。例如,是否可以在编译流程的后期进行模式匹配。
针对关于在连接到可能在 AARch32 和 AArch64 之间切换的系统时使用 LLDB 的问题,Colin Riley 编写了关于 在一个调试器会话中对多个目标的当前支持和潜在的未来支持 的良好描述。
Jonathan Ragan-Kelley 询问关于以旧格式发出 IR,因为需要为 Nvidia 的 libNVVM 发出与 3.2 兼容的位代码。几个回复建议查看 SPIR。
您是否想知道查询操作成本的多种方式之间的区别? 不用再好奇了。
Duncan P.N. Exon Smith 发布了关于 IR 中的一流调试信息的 RFC。与之前的提案相比,已经进行了一些更改。
Chandler Carruth 编写了 LLVM 和 Clang 中别名分析传递排序的摘要。这详细说明了当前情况以及 Chandler 对将来如何更改的看法。
Philip Reames 正在寻求对 GCStrategy 的两个实现问题 的更广泛反馈。两个关键问题是是否应该在 IR 验证器中检查 GC 特定的属性,以及 GCStrategy 的访问模型应该是什么。还没有回复,所以现在是深入研究的时候了。
Ramshankar Ramanarayanan 发布了 循环融合传递的概念验证。同时,Adam Nemet 发布了 循环分配传递的 RFC。
Lang Hanes 发布了 一个提议的新的 JIT API,并给出了一个朗朗上口的名称(ORC:按需编译)。目标是干净地支持更广泛的 JIT 用例,并明确表示此更高层的 API 不会替代现有的 MCJIT。
Bjoern Haase 一直在花时间检查针对 Cortex M0 等 armv6 微控制器目标生成的代码。他有一系列关于 针对此目标调整默认优化器设置的建议。
LLVM 提交
现在可以使用新的代码多样性功能。NoopInsertion 传递将向 x86 二进制文件添加随机无操作,以尝试通过增加多样性来使 ROP 攻击更加困难。 r225908。我强烈建议您阅读去年发布的关于 盲目 ROP 攻击的文章。看看 G-Free 的实现,以生成没有简单工具的二进制文件也很有趣。该提交后来由于某种原因被还原。
现在以 3.6 版本说明的形式,提供了最近 MIPS 和 PowerPC 目标开发以及 OCaml 绑定的良好总结。 r225607、r225695、r225779。
LLVM 了解了 llvm.frameallocate 和 llvm.framerecover 内在函数,它们允许多个函数从一个函数的调用帧共享单个堆栈分配。 r225746、r225752。
一个实验性的(默认情况下禁用)“归纳范围检查消除”传递已落地。这试图消除形式为
0 <= A*I + B < Length
的范围检查。 r226201。现在可用于 PowerPC 目标的 StackMap/PatchPoint 支持。 r225808。
对 Win64 SEH 捕获处理程序的初始支持已落地。有关当前缺失的功能,请参见提交消息。 r225904。
一个新的实用程序脚本已启动,以帮助更新简单的回归测试。它需要一些工作才能使其超越 x86 通用化。 r225618。
TargetLibraryInfo 已移入 Analysis 库。 r226078。
Clang 提交
添加了新的
-fno-inline-asm
标志以禁止所有内联汇编。如果它存在于输入代码中,它将被报告为错误。
r226340.再次支持
-fsanitize-recover
命令行标志。 r225719。集成汇编程序现在默认情况下在 32 位 PowerPC 和 SPARC 上使用。 r225958。