LLVM 每周 - 第 27 期,2014 年 7 月 7 日
欢迎阅读 LLVM 每周的第 27 期,这份周刊(每周一发布)涵盖了 LLVM、Clang 和相关项目的最新发展。LLVM 每周由 Alex Bradbury 编写。在 http://llvmweekly.org 订阅未来的期刊,并将其分享给您认为可能感兴趣的任何人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury。
本期期刊的规范位置 可以在 llvmweekly.org 找到。
来自网络的新闻和文章
一个 LLVM 代码生成器已 合并 到 MLton 的完整程序优化编译器中,用于标准 ML。这是 Brian Leibig 在他的 硕士论文 中编写的内容,其中包含有关其性能和设计的更多信息。
Eli Bendersky 已 编写了一个工具,它将 Clang 的 -ast-dump
输出转换为 HTML。请参阅 此处 获取示例。该代码 可在 Github 上获取。
Clang 的 Microsoft Visual C++ 兼容性页面 已更新以反映当前 SVN 主干的状态。从 相关的 diff 中可以看出,记录布局已标记为已完成,以及 RTTI。Lambda 现在被标记为基本完成。
在邮件列表上
Edwin Amsler 对 为 6502 处理器生成 LLVM 后端 感兴趣。他后来启动了一个主题,询问 针对没有通用寄存器的 CPU 的建议。David Given 建议,将 6502 视为一台具有 256 个字节大小寄存器的机器可能是有价值的。
Pavel Chupin 代表英特尔在邮件列表中写信,以获取有关 上游支持 x32 ABI 的反馈。正如您所预期的那样,人们赞成这个想法。NativeClient 团队也 对此感兴趣,尤其是因为 NaCl 的 x86-64 ABI 与 x32 相当类似。
Sunil Srivastava 分享了 针对 Clang 的 ABI 测试套件的提案。索尼提交实现以供代码审查获得了广泛支持。后来的回复澄清了,在 400 个测试文件中,大约 20% 是手写的,其余来自测试用例生成器。
在一个关于使用 Clang API 提取有关结构体内存布局的信息的主题中,Reid Kleckner 指出了方便的 -fdump-record-layouts 标志。
有一个关于 Phabricator 审查主题对非 Phabricator 用户的可用性 的大型主题。电子邮件审查似乎在 Phabricator 上显示,反之亦然。内容比我有时间总结的更多,因此建议有兴趣的人阅读该主题。
LLVM 提交
X86 后端现在在 IR 中扩展原子操作,而不是作为 MachineInstr。在 IR 级别进行扩展会产生更短的代码,并且其他 IR 遍历可能能够在扩展的原子操作上运行,因此可能会带来好处。 r212119。
ARM 后端学习了 ISB 内存屏障内联函数。 r212276。
X86 后端获得了对
__builtin_ia32_rdpmc
的支持,该函数用于读取性能监控计数器。 r212049。窥孔优化器获得了新的代码(目前已禁用)以重写复制以避免跨寄存器组的复制。 r212100。
控制流图构建代码已从 MC 移至新的 MCAnalysis 库。 r212209。
TableGen 获得了对 MSBuiltin 的支持,它允许添加用于 Microsoft 兼容性的内联函数。 r212350。
Clang 提交
MSVC RTTI(运行时类型信息)实现已完成。 r212125。
添加了
__builin_arm_ldaex
和__builtin_arm_stlex
内联函数。 r212175。现在在 Microsoft 内联汇编中支持嵌套块。 r212389。