LLVM 每周 - 第 48 期,2014 年 12 月 1 日
欢迎来到 LLVM 每周的第 48 期,这是一个每周发布的新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的进展。LLVM 每周由 Alex Bradbury 呈现。订阅未来的问题,请访问 http://llvmweekly.org,并将其传递给您认为可能感兴趣的任何人。如果您有任何建议或反馈,请发送邮件至 [email protected],或在 Twitter 上关注 @llvmweekly 或 @asbradbury。
本期文章的规范地址 可以在这里找到:llvmweekly.org。
来自网络的新闻和文章
John Regehr 发布了关于 Souper 超级优化器的更新,他和他的合作者一直在研究这个项目。他们为 Souper 优化器实现了一个缩减器,该缩减器试图将优化缩减为更简洁的形式。他们当前的结果给出了大约 4000 种不同的优化,其中大约 1500 种 LLVM 不知道如何做。当然,其中许多实际上可能被单个规则或通道所覆盖。Souper 的下一步计划之一是扩展 Souper 以支持指令序列的合成。另请参阅 llvm 邮件列表上的讨论。
LLVM 博客包含 LLVM 循环向量化最新进展的总结。这包括诊断备注,以获得有关未向量化的循环被跳过的原因的反馈,Clang 中的循环 pragma 指令,以及当该指令无法被遵循时的性能警告。
LLVM Haskell 编译器 (LHC) 已经 重生,以及 它的博客。开发的下一步是提供对 Haskell2010 的更好支持,为名称解析和类型检查提供可重用库,并生成人类可读的编译器输出。
下一场在巴黎举办的 LLVM 社交活动 将在 12 月 9 日举行。
英特尔发布了一篇博客文章,详细介绍了 GCC 5.0 中新的针对 X86 的优化。您可能还会对 Hacker News 上对这篇文章的讨论 感兴趣。
邮件列表
Hal Finkel 发表了一份 RFC,建议 删除 BBVectorize 通道,理由是它还没有发展到生产质量,而 SLP 向量化器已经存在并启用了一段时间,并且它存在各种错误和代码待解决问题。如果您有不同的意见,现在是时候说出来。
Yichao Yu 对 ARM 上 MCJIT 的当前状态感到好奇。一些人回应说,他们在 ARM 上使用它,很少遇到问题,虽然 Renato Golin 希望在相应的状态页面上将其标记为“受支持”之前能看到更多成功案例。
Tom Stellard 计划 尽快开始 3.5.1 版本发布周期。如果您想帮助测试,请告诉他。
在开发非上游的 LLVM 后端时,应该将其作为可加载模块还是直接应用于克隆的 LLVM 仓库?Rafael Auler 尝试了将他的后端作为可加载模块构建的方法,并认为最好是克隆 LLVM,并在必要时进行重新绑定。这就是您尊敬的编辑所采取的方法(尽管承认他已经很久没有重新绑定了……)。
LLVM 提交
对
-debug-ir
(在调试数据中发出 LLVM IR)的支持已被删除。提交信息中没有真正的理由或解释,但它很可能是未完成的/未使用的/不可用的。 r222945。InstCombine 现在将规范化为要存储的值类型,而不是指针类型。其理由(在提交信息中更详细地解释)是,内存没有类型,但操作及其产生的值有类型。 r222748。
对
!invariant.load
元数据的文档已得到澄清。 r222700。在 tablegen 中,neverHasSideEffects=1 现在为 hasSideEffects=0。 r222801。
Clang 提交
新增了四个 ASTMatcher:typedefDecl、isInMainFile、isInSystemFile 和 isInFileMatchinName。 r222646。
关于 MSVC 兼容性的文档已更新,以反映当前状态。Clang 还获得了对重新抛出 MS C++ 异常的支持。 r222731,r222733。