LLVM 项目博客

LLVM 项目新闻和来自战壕的细节

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。

邮件列表上的内容

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

其他项目提交

  • LLDB 现在可以从 Microsoft 的 PDB 调试信息文件中读取行表。 r262528

  • LLVM 测试套件获得了对生成二进制文件进行哈希处理以及在哈希值自上次运行以来没有更改时跳过测试的功能。 r262307

  • LLVM 的 OpenMP 运行时现在支持新的 OpenMP 4.5 doacross 循环嵌套和 taskloop 特性。 r262532r262535