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 举行。
在邮件列表中
来自 Google 的 Amin Shali 发布了 关于将重命名重构工具添加到 Clang 的 RFC。拟议的功能添加将包括一个命令行工具,用于语义上重命名符号,以及一个 API,可用于 IDE/编辑器执行相同操作。
Lang Hames 提醒 LLVM 用户切换到 MCJIT。旧的 JIT 基础设施将在 3.5 之后被移除,因此,如果您尚未移植到 MCJIT,现在是时候看看了。
Rekha R 提出了一个关于 add nsw 语义的问题,这引发了一些有用的回复,如果您也发现它不清楚,这些回复可能会帮助澄清问题。
LLVM 提交
已添加对作用域 noalias 元数据的支持。这样做的目的是在内联时保留 noalias 函数属性信息,并对块作用域 C99 restrict 指针进行建模。 r213864、r213948、r213949。
llvm-vtabledump 工具诞生了。这将转储目标文件中的 vtable。目前它只支持 MS ABI,但将来也将支持 Itanium ABI vtable。 r213903。
已添加 llvm.assume 内在函数。这可以用来为优化器提供一个它可能假定为真的条件。 r213973。
循环向量化器已扩展,以利用别名分析基础设施。 r213486。
R600 后端获得了一个指令缩减过程,它将在可能的情况下将 64 位指令转换为 32 位。 r213561。
llvm.loop.vectorize.unroll 元数据已重命名为 llvm.loop.interleave.count。 r213588。
已提交 MIPS 的 LLVM 3.5 发布说明,如果您有兴趣查看过去开发周期的工作摘要。 r213749。
现在已记录 IR 向后兼容性策略。 r213813。