LLVM 项目博客

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

LLVM 每周 - #30, 2014 年 7 月 28 日

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

本期的官方主页 可以在 llvmweekly.org 找到

来自网络的新闻和文章

Nuno Lopes、David Menendez、Santosh Nagarakatte 和 John Regehr 已 撰写了关于 ALIVe 的文章。这是一个非常有前景的工具,旨在帮助规范和证明窥孔优化(例如目前在 LLVM 的 InstCombine 中发现的那些)。它使用 SMT 求解器来证明优化是正确的(如果错误,则提供反例)。

第一个 LLVM/Clang 3.5 发布候选版的源代码和二进制文件 现已可用。如果您喜欢您的 LLVM 版本按时发布且无回归,请尽自己的一份力量,在您的代码库上测试它们。

Thomas Ströder 及其同事最近发表了一篇名为“为具有指针算术的程序证明终止和内存安全”的论文,该论文从 LLVM IR 创建符号执行图以进行分析。预印本 可在此处获取

下一个剑桥(英国)LLVM 社交将在 7 月 30 日晚上 7:30 举行。

在邮件列表中

LLVM 提交

  • 已添加对作用域 noalias 元数据的支持。这样做的目的是在内联时保留 noalias 函数属性信息,并对块作用域 C99 restrict 指针进行建模。 r213864r213948r213949

  • llvm-vtabledump 工具诞生了。这将转储目标文件中的 vtable。目前它只支持 MS ABI,但将来也将支持 Itanium ABI vtable。 r213903

  • 已添加 llvm.assume 内在函数。这可以用来为优化器提供一个它可能假定为真的条件。 r213973

  • 循环向量化器已扩展,以利用别名分析基础设施。 r213486

  • 已进行各种添加以支持 PowerPC ELFv2 ABI。 r213489r213490 等等。

  • R600 后端获得了一个指令缩减过程,它将在可能的情况下将 64 位指令转换为 32 位。 r213561

  • llvm.loop.vectorize.unroll 元数据已重命名为 llvm.loop.interleave.count。 r213588

  • 已提交 MIPS 的 LLVM 3.5 发布说明,如果您有兴趣查看过去开发周期的工作摘要。 r213749

  • 现在已记录 IR 向后兼容性策略。 r213813

Clang 提交

  • 已添加对 #pragma unroll 的支持。 r213574

  • Clang 学习了一系列 AVX-512 内在函数。 r213641

  • MS ABI 支持工作仍在继续。 r214004

其他项目提交

  • Hexagon DSP 的动态加载器以及 ABI 描述已提交到 lldb。 r213565r213566

  • 已将 C++ 解码的新快速路径实现添加到 lldb。它承诺显著提高性能。 r213671