LLVM 项目博客

LLVM 项目新闻和来自一线的细节

LLVM 每周 - 第 112 期,2016 年 2 月 22 日

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

本期文章的规范网址为 http://llvmweekly.org

来自网络的新闻和文章

Filip Pizlo 撰写了一篇 精彩的文章,介绍了 WebKit 的 JavaScriptCore 的新 B3 JIT 编译器。它旨在取代 LLVM 作为其第四层 JIT 的优化后端。这篇文章详细描述了他们放弃 LLVM 的原因(主要是编译时间)以及所做的设计权衡,例如减少内存分配和最大限度地减少 IR 中的指针跟踪。这让我想起了 Mike Pall 在 LuaJIT 2.0 IR 中做出的权衡。Philip Reames 也分享了 关于 B3 的一些初步想法。我知道有些人对 WebKit 放弃 LLVM 感到失望,但如果您允许我添加一点社论,我认为 B3 对于 LLVM 和更广泛的编译器社区来说是一个非常积极的发展。B3 探索了与 LLVM 选择的设计权衡不同的一组设计权衡,而这类变化在全新的代码库中探索起来可能更容易。感谢这篇文章(以及希望未来的 B3/AIR 文档),我们可以从 B3 开发人员的经验中学习,并考虑他们的一些选择是否适合 LLVM。还需要记住,LLVM 不是代码生成和优化的唯一可行途径,我们不应该将 LLVM 的设计选择视为唯一正确的方式。令人印象深刻的是,B3 在仅 6 个月的开发时间内就发展到现在的状态。

LDC 的 0.17.0 版本,用于 D 编程语言的基于 LLVM 的编译器,已 发布。您可以查看 此处的详细变更日志

GCC6 将包含大量新的警告,并且 这篇博客文章详细介绍了其中许多警告。

EuroLLVM 2016 的日程表现已公布。它将于 3 月 17 日至 18 日在巴塞罗那举行。

邮件列表

LLVM 提交

  • PPCLoopDataPrefetch 传递已移至 Transforms/Scalar/LoopDataPrefetch,为其成为目标无关传递做准备。 r261265

  • cmpxchg LLVM 指令现在允许指针类型操作数。 r261281

  • X86 后端获得了对新的堆栈符号排序优化支持。这主要用于减少代码大小,并且在某些 SPEC CPU 2000 基准测试中产生了很小但可衡量的改进。 r260917

  • LLVM C API 已扩展,使其能够用于操纵 datalayout。 r260936

  • LazyCallGraph 上的一些主要工作已签入。 r261040

  • AMDGPU 后端获得了基本反汇编程序。 r261185

  • PostOrderFuctionAttrs 传递已移植到新的传递管理器。如提交消息中所述,这实际上代表了一个重要的里程碑。 r261203

  • Hexagon 后端获得了对线程局部存储的支持。 r261218

Clang 提交

  • 添加了一个 nullPointerConstant AST 匹配器。 r261008

  • Clang 获得了一个 -Wcomma 警告,它将警告大多数对内置逗号运算符的使用。 r261278

其他项目提交

  • LLD 已经发布了一个发行说明文档。 r260960

  • LLVM 测试套件的 CMake 构建系统对 SPEC 进行了一些修复。 r261470