LLVM 每周 - 第 22 期,2014 年 6 月 2 日
欢迎来到 LLVM 每周的第二十二期,这是一个每周发布的新闻简报(每周一发布),涵盖 LLVM、Clang 和相关项目的发展。LLVM 每周由 Alex Bradbury 为您带来。订阅未来的期数,请访问 http://llvmweekly.org,并将它传递给您认为可能感兴趣的任何人。请将任何建议或反馈发送至 [email protected],或在 Twitter 上关注 @llvmweekly 或 @asbradbury。
上周,我对 GMANE 没有更新表示担忧。我很高兴地报告它现在已恢复正常。我的一些读者可能对我在 湾区创客嘉年华上看到的酷炫的基于 Raspberry Pi 的项目 的描述感兴趣。
本期内容的规范来源 可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
David Given 已 分享了他为 Raspberry Pi 中的 BCM2835 所使用的 VideoCore IV VPU 编写的部分完成的后端。现在它已经 公开发布,看到一个 QPU LLVM 后端也很有意思。
有关 TableGen 的 DAGISel 后端工作原理的文档 已更新。
已宣布举办 LLVM 编译器基础设施在高性能计算中的研讨会。这是一个与 SC14 同时举办的研讨会。征稿截止日期为 9 月 1 日。
Tartan 是一款针对 GLib 和 GNOME 的 Clang 分析插件。引用其主页的描述:“该插件通过加载所有遇到的函数的 gobject-introspection 元数据(对于库而言,包括代码本身导出的函数;以及代码本身调用的函数)来工作。然后利用该元数据为代码添加编译器属性,例如非空属性,然后编译器可以使用这些属性进行静态分析并发出额外的编译器警告。”
在邮件列表中
Jack Howarth 已发帖询问 如何更快地合并 clang-omp 合并。Andrey Bokhanko 随后跟进了一些 澄清和详细说明。Hal Finkel 也 更清楚地描述了 OpenMP 语言支持与 OpenMP 运行时库。
Simon Cook 提出一个关于 具有 32 位寄存器用于加载/存储但其他方面主要是 16 位的后端 的有趣问题。遗憾的是,目前还没有答案。
Qiong Cai 对 LLVM JIT 有几个问题。Philip Reames 简洁地回答。
Tim Northover 建议将加载链接和存储条件原子指令添加到 LLVM IR。David Chisnall 对该提案给出了一个详细的 回答,建议弱 cmpxchg 会是一个更简单且总体上更好的补充。
LLVM 提交
添加了一个 LoadCombine 传递,但目前默认情况下已禁用。 r209791。
AAPCS-VFP 已学会处理 Cortex-M4(它只有单精度浮点)。 r209650。
InstructionCombining 获得了跨 PHI 节点组合 GEP 的支持。 r209843。
现在允许对 powi、cttz 和 ctlz 等内在函数进行矢量化。 r209873。
MIPS64 长分支已优化为小 3 条指令。 r209678。
Clang 提交
OpenMP 实现持续进行。已为 OMPAlignedClause 实现解析和 Sema。 r209816。
添加了
-Rpass-missed
和-Rpass-analysis
标志。pass-missed 用于由优化器通知用户,当他们尝试应用优化但无法应用时,而 pass-analysis 用于将分析结果报告回用户。后续提交记录了该标志族。 r209839,r209841。现在已记录 clang 优化 pragma。 r209738。
进行了一些 API 重构。从 ActionResult 中删除了 release 和 take 方法,从 Sema 中删除了 Owned。 r209800,r209812。
其他项目提交
- ThreadSanitizer 已对堆块和同步对象的元信息存储进行了重构。 r209810。