LLVM 每周 - 第 24 期,2014 年 6 月 16 日
欢迎来到 LLVM 每周的第二十四期,这是一份每周发布的新闻简报(每周一发布),涵盖 LLVM、Clang 和相关项目的发展情况。LLVM 每周由 Alex Bradbury 为您提供。请在 http://llvmweekly.org 订阅未来的期刊,并转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury 。
此期刊的规范地址 位于 llvmweekly.org 。
来自网络的新闻和文章
Philip Reames 撰写了另一篇博客文章,介绍了他与同事一起开发的精确重定位 GC 支持。在这篇文章中,他 描述了延迟安全点放置的 IR 限制 。
今年 EuroLLVM 会议的视频 现已发布 。享受吧!
Evan Swick 撰写了一篇 关于 Swift 内部结构的博客文章 ,使用从逆向工程 Swift 二进制文件和运行时获得的信息。
下一场巴黎 LLVM 社交活动将在 6 月 23 日举行 。
下一场剑桥 LLVM 社交活动将在 6 月 25 日举行 。
在邮件列表中
George Burgess 在邮件列表中发布了一篇文章, 宣布他将加入 Google 实习,并致力于 LLVM 的一种新的别名分析算法 。他将实现基于 这篇论文 的算法。他的完整提案 在这里 。
Tim Northover 撰写了 关于将 cmpxchg weak 添加到 LLVM IR 的 RFC 。本周已经快速接受了这一 RFC,因为补丁已经在本周提交。
Mark Tullsen 正在开发一个工具,允许程序员使用高级 DSL 编写自定义程序属性。他们正在使用 libclang,但 缺少对 AST 执行转换的功能 。David Chisnall 给出了一个很好的 关于为什么不支持 AST 转换的原因 。
Apple 正在招聘工程师加入他们的 Swift 团队 。这引发了关于 LLVM 列表中职位发布规则的讨论,也引出了 Chris Lattner 关于 Swift 是否会开源的另一个回应 。“你可以想象,我们中的许多人都希望它开源并成为 llvm 的一部分,但还没有进行讨论,而且在一段时间内都不会进行。”
Alp Toker 向使用 LLVM 的人宣布 ,llvm/Config/config.h 头文件将成为 LLVM 源代码树的内部文件。基于 LLVM 的树外项目应该进行更新。
Tom Stellard 在邮件列表中宣布 ,
setOperationAction(ISD::SELECT_CC, MVT::Other, Expand)
不再受支持,您必须为每个受支持的类型显式设置SELECT_CC
操作。一个 关于 LLVM 3.5 的预先提醒 。该流程将于 7 月中旬开始(更多详细信息将在稍后发布)。
LLVM 提交
cmpxchg 的弱变体已添加到 LLVM IR 中,正如邮件列表中 所论证的 。弱 cmpxchg 允许失败,操作返回
{iN, i1}
(事实上,为了统一,所有 cmpxchg 指令现在都这样做)。根据提交消息,此更改意味着旧版汇编 IR 文件将无效,但旧版位码文件将在读取过程中进行升级。 r210903 。X86 FastISel 获得了对处理更多内在函数的支持。 r210709 、 r210720 等等。FastISel 还进行了一些与目标无关的改进 r210742 。
本周对 MIPS 后端针对 mips32r6/mips64r6 的更新很多。例如 r210899 、 r210784 等等。
NoSignedWrap、NoUnsignedWrap 和 Exact 标志现在已公开给 SelectionDAG。 r210467 。
已添加对 ARM Itanium ABI 上的 Windows 上的可变长度数组的支持。 r201489 。
对 Value 和 User 中字段进行一些简单的重新排序,在 64 位上节省了 8 字节的填充。 r210501 。
FastISel 现在将收集有关内在函数失败时的统计信息。 r210556 。
MIPS 后端获得了对 jr.hb 和 jalr.hb 的支持(带有危险屏障的跳转寄存器,带有危险屏障的跳转和链接寄存器)。 r210654 。
AArch64 获得了 Cortex-A57 的基本调度模型。 r210705 。
LLVM 已过渡到使用
std::error_code
而不是llvm::error_code
。 r210687 。