LLVM 项目博客

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

LLVM 每周 - 第 32 期,2014 年 8 月 11 日

欢迎来到 LLVM 每周的第 32 期,这是一份每周发布的新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 带来。订阅未来的期数,请访问 http://llvmweekly.org,并将其转发给您认为可能感兴趣的任何其他人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly@asbradbury

一些读者可能对 lowRISC 感兴趣,这是一个由剑桥大学计算机实验室的我们中的几个人启动的,旨在生产一个完全开源的 SoC 的项目。 我们正在招聘

本期文章的规范来源 可以在 llvmweekly.org 找到

来自网络的新闻和文章

Codeplay 在一段时间之前贡献了 LLDB MI(机器接口)前端,现在他们提交了一些额外的功能。为了配合这一点,他们发布了一系列 博客文章,涵盖 MI 驱动程序的实现、如何在 Eclipse 中设置它以及如何添加对新 MI 命令的支持。

McSema 是一个将 x86 程序转换为 LLVM 位码的框架,现在已经 开源。ReCON 会议上关于 McSema 的演讲也已在线发布。

LLVM 开发者大会 2014 的注册现已 开放。活动将于 10 月 28 日至 29 日在圣何塞举行。您可以在 9 月 1 日之前 提交您的演讲/BoF/海报/教程提案

邮件列表上的内容

LLVM 提交

  • MachineCombiner 传递的初始工作已完成。这会估计原始指令序列的临界路径长度与变换(合并)后的指令序列的临界路径长度,并选择更快的代码。提交信息中给出的一个示例是在 AArch64 上在 add+mul 和 madd 之间进行选择,并且后续提交为该目标实现了 MachineCombiner。 r214666r214669

  • 一些有用的辅助函数已添加到 LLVM C API 中:LLVM{IsConstantString, GetAsString, GetElementAsConstant}r214976

  • 添加了一大堆 AVX512 指令。 r214719

  • AArch64 的 FastISel 现在支持基本参数降低。 r214846

  • 添加了一个标志,用于尝试在 SLP 矢量化器之前运行循环矢量化器。根据提交信息,最终这应该成为默认值。 r214963

  • 旧的 JIT 已经快要死了,它已经被删除(对于那些没有密切关注的人来说,3.5 已经分支,所以仍然包含旧的 JIT)。然而,该补丁随后被还原,所以它处于僵尸状态。 r215111

  • AArch64 为 Cortex-A57 获得了一个负载平衡传递,该传递试图通过平衡偶数和奇数 FP 寄存器的使用来最大程度地利用可用资源。 r215199

Clang 提交

  • 线程安全分析获得了对指定负需求的支持。 r214725

  • 覆盖映射生成已经提交。-fcoverage-mapping 命令行选项可用于生成覆盖映射信息,然后可以将其与来自基于仪器的分析的执行计数相结合,以执行代码覆盖率分析。 r214752

  • 一个命令行选项,用于限制编译器可以为任意指针假设的对齐方式。 r214911

其他项目提交

  • LLDB 的 FileSpec 类学会了理解 Windows 路径。 r215123

  • LLDB 为其机器接口学习了大量新的命令和功能。 r215223

  • OpenMP 获得了 PowerPC64 支持。 r215093