LLVM 每周 - 第 114 期,2016 年 3 月 7 日
欢迎来到 LLVM 每周的第 114 期,这是一个每周一发布的周刊通讯,涵盖 LLVM、Clang 和相关项目的进展情况。LLVM 每周由 Alex Bradbury 为您带来。请在 http://llvmweekly.org 上订阅未来的期刊,并将其转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上联系 @llvmweekly 或 @asbradbury。
本期期刊的官方网址为 llvmweekly.org。
来自网络的新闻和文章
LLVM 已被 接受 作为 2016 年 Google 暑期代码项目的指导组织。有关其含义的更多信息,请查看 此处。如果您是一名学生,想在暑假期间获得报酬来从事 LLVM 方面的工作,您绝对应该考虑申请。此外,请查看 2016 年 GSoC 中所有组织的完整列表。如果您对开源硬件感兴趣,在我(有偏见)的观点看来,您绝对应该查看 lowRISC 的项目建议清单。
LLVM 和 Clang 3.8 的 '最终' 版本已 标记。发布版本即将推出。
上周举行了一个大型 C++ 委员会会议。您可以在 此处 和 此处 找到摘要。如果您希望 C++17 中包含模块、概念、UFCS、范围或协程,那么恐怕要让您失望了。但是,许多新特性将在 C++ 技术规范中提供。
llvmlite 0.9.0 已 发布。llvmlite 是 LLVM 的一个轻量级 Python 绑定。如果您想知道如何开始使用 llvmlite,请查看 Ian Bertolacci 最近发布的一篇关于 使用 llvmlite 用 LLVM 编写斐波那契数列 的博客文章。
Andi McClure 撰写了一篇非常有趣的博客文章,介绍了 如何在没有编译器的情况下编写软件。在本例中,是从 LuaJIT 生成 LLVM IR。
邮件列表上的内容
John McCall 发布了关于 在 LLVM 和 Clang 中实现 Swift 调用约定 的 RFC。反馈总体上是积极的,并且关于在调用约定中处理 Swift 错误存在有趣的讨论。
Roel Jordans 在 为 EuroLLVM 关于编译器在教育中的鸟类聚会发布了一些想法和问题。
Peter Collingbourne 分享了一个关于 添加虚拟调用的新 ABI 的 RFC,称为 '相对 ABI'。他还希望更改虚拟调用在 IR 中的表示方式。
来自 Dividiti 的 Grigori Fursin 分享了近期关于人群优化编译器优化启发式算法的一些工作。
Tian Xinmin 分享了一个关于 函数向量化和包含函数调用的循环向量化 的提案。
Hatanaka Akira 对他的关于 更精确的 lifetime.end 元数据 的 RFC 征求意见。在给定示例中,三个局部变量具有不重叠的生存期,并且可以潜在地使用同一个堆栈槽,但目前没有这样做。
LLVM 提交
MemorySSA 获得了初始更新 API。 r262362。
TableGen 现在可以在编译时检查调度模型是否完整。 r262384。
PassBuilder 中的新注释描述了对每个优化级别的预期权衡。 r262196。
LoopLoadElimination 现在默认启用。 r262250。
一个新的补丁已落地,该补丁添加了内联中用于配置文件引导优化增强的基础结构。 r262636。
尝试使用隐式支配条件推断更精确的已知位的实验性 ValueTracking 代码已删除。实验发现它不够有利,但对于想要在树外进行实验的人来说,它可能仍然有用。 r262646。
Clang 提交
Clang 的 C API 已经获得了将致命错误降级为非致命错误的选项。这对 IDE 等客户端来说可能很有用。 r262318。
clang-cl 获得了对预编译头文件的初步支持。 r262420。
引入了
-fembed-bitcode
驱动程序选项。 r262282。swiftcall 调用约定的语义分析已落地。 r262587。
Clang 的 TargetInfo 现在将存储一个实际的 DataLayout 实例,而不是一个字符串。 r262737。