LLVM 每周 - 第 87 期,2015 年 8 月 31 日
欢迎来到 LLVM 每周的第 87 期,这是一个每周发布(每周一发布)的新闻通讯,涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 提供。订阅未来期刊请访问 http://llvmweekly.org,并将其转发给您认为可能感兴趣的任何其他人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury。
这是英国的银行假日周末,所以对于您比平时晚几个小时阅读本文,我们深感歉意。提醒一下,如果您能够在 10 月 9 日至 11 日期间前往日内瓦,那么您绝对应该参加 ORConf。
本期内容的规范性主页可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
在撰写本文时,LLVM 3.7.0 尚未正式发布,但已标记。最终版本应在未来一两天内发布。祝贺所有参与的人。
LLVM 在 HPC 研讨会上的提交截止日期已延长至 9 月 4 日星期五。
请提前做好准备!下一场剑桥 LLVM 社交活动将在9 月 30 日星期三举行。
在邮件列表上
Jingyue Wu 分享了一个有关 NVPTX 内存空间推理的设计文档以及关于直线标量优化的文档。
Swaroop Sridhar 关于扩展 alloca 以允许指定分配的地址空间的 RFC 引发了大量讨论,对于那些对在 LLVM 中支持 GC 的复杂性感兴趣的人来说,非常值得一读。尤其值得关注的是 Philip Reames 关于基于堆栈的分配与 LLVM 中的 GC 之间交互的设计文档。另请参阅 Joseph Tremoulet 关于他理解 LLILC 如何希望使用地址空间的总结。
关于不稳定的构建机器,已经进行了一些讨论。Renato详细说明了对他简单地忽略这些机器的担忧。所讨论的机器中出现的一些问题可能是由于使用了增量构建。
LLVM 提交
“kaleidoscope”教程已经进行了重大更新。现在,它不再介绍 MCJIT,而是描述如何使用 ORC,构建一个名为 KaleidoscopeJIT 的自定义 JIT。 r246002。
WebAssembly 后端实现工作在过去几周内一直在继续。单个提交往往很小且专注(正如良好的提交应该的那样)。我主要想提一下,以强调工作正在进行。例如,最近的提交添加了对发出简单调用 S 表达式的支持。 r245986。
关于状态点的文档现在更多地介绍了基指针和相关的假设以及优化。 r246103。
常量传播已为更多单精度数学函数启用,例如 acosf、powf、logf。 r246194。
函数
llvm::splitCodeGen
已被引入,以支持并行 LTO 代码生成的实现。它使用 SplitModule 将模块分割成可链接的 partition,这些 partition 分布在各个线程之间,以便进行代码生成。 r246236。DebugInfo 方面也发生了一些变化。DISubprogram 定义现在必须标记为 distinct。提交消息包含一个建议的用于更新 IR 的脚本。 r246327。
Chandler 一直在对 ARM 目标解析代码进行一些重构,希望使其更有效率。他减少了调用代码的情况,这对一些 LLVM 定时产生了显著的影响(例如,带有未优化构建的 check-llvm 快了 15 秒)。 r246370, r246378。
Clang 提交
- 已引入一个 NullabilityChecker,旨在捕获许多与可空性相关的错误。 r246105。
其他项目提交
ThreadSanitizer 现在已在具有 42 位虚拟寻址的 AArch64 上的 Linux 中启用。 r246330。
libcxx 现在在其 TODO.txt 中包含了 3.8 的发布目标。这包括文件系统 TS 和异步 I/O TS。 r245864。
LLD 的 ELF 链接器获得了基本 AMDGPU ReaderWriter,使其能够发出 HSA 运行时可以使用的二进制文件。 r246155。
LLD 的 COFF 链接器获得了对并行 LTO 代码生成的支持。 r246342。
LLDB 现在支持 ARM 上的硬件观察点。 r245961。
LLDB 中引入了“语言插件”的概念。它们将提供特定于语言的数据格式化程序或表达式求值。 r246212。