LLVM 每周 - 第 109 期,2016 年 2 月 1 日
欢迎来到 LLVM 每周的第 109 期,这是一份每周发布的通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的进展。LLVM 每周由 Alex Bradbury 为您带来。订阅未来的期刊,请访问 http://llvmweekly.org,并将其转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury。
本期文章的规范地址 可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
GNU Tools Cauldron 2016 已 宣布,将于 2016 年 9 月 9 日至 11 日在英国赫布登桥举行。
Sulong 项目已 宣布。它是一个 LLVM IR 解释器,使用 Truffle 框架和 JVM 上的 Graal 来支持 JIT 编译。
Ehsan Akhgari 发布了 关于使用 clang-cl 构建 Firefox 的更新。现在可以使用 Clang 构建完整的 Firefox,而无需使用 MSVC 回退一次。
我在下面提到的值得注意的提交列表中提到了这一点,但这里也值得重点介绍:LLVM 中现已 删除 了旧的 autoconf 构建系统。3.8 将是包含它的最后一个版本。如果您还没有,现在是切换到 CMake 的时候了。
John Regehr 在巴黎 LLVM 聚会上发表了关于 LLVM 中未定义行为的演讲,您可以在这里找到幻灯片 这里。
在邮件列表中
James Knight 写信给列表,征求关于 清理 Clang 处理原子操作的方法 的反馈。清理工作似乎得到了广泛的支持。James 再次跟进 稍微修改了他的计划。
Matt Arsenault 建议 所有 libcall 都应规范化为 intrinsics。迄今为止,所有回复都表示赞成。
Ke Bai 分享了一份关于 在 LLVM IR 中表示多个内存范围 的提案。目前还没有反馈。
Dmitree Kuvaiskii 询问是否有任何人实现了 利用 Intel 的新 MPX 内存保护的通行证。答案似乎是否定的,此外 David 和 Kostya 对其价值持怀疑态度。
Peter Collingbourne 提出了一种新的优化,虚拟常量传播。最初的动机是减少在某些 Chromium 基准测试中启用控制流完整性带来的开销。常量将在 LTO 期间去虚拟化。
LLVM 提交
LLVM 的 autoconf 构建系统已被删除。 r258861。
WebAssembly 后端获得了对未对齐加载和存储的支持。 r258779。
LLVM 的 MCAsmSreamer 现在将始终使用 .p2align 而不是 .align,因为 .align 的行为在不同的目标之间可能会有所不同。 r258750。
Intrinsic ID 现在通过二分查找而不是以前更复杂的机制进行查找。这提高了 Function.cpp 的编译时间。 r258774。
TargetSelectionDAGInfo 已重命名为 SelectionDAGTargetInfo,现在位于 CodeGen 而不是 Target 中。 r258939。
添加了一个 LoopSimplifyCFG 通道来规范化循环,然后再运行 LoopRotate 和 LoopUnroll 等通道。 r259256。
Clang 提交
clang-cl 驱动程序现在会对未知参数发出警告,而不是错误,以匹配 MSVC 的行为。 r258720。
Clang 中的旧 autoconf 构建系统已被删除。 r258862。
'sancov'(SanitizerCoverage)工具获得了一些文档。 r259000。