LLVM 项目博客

LLVM 项目新闻和来自底层的细节

LLVM 每周 - #56, 2015 年 1 月 26 日

欢迎来到 LLVM 每周的第 56 期,这是一份每周一发布的新闻通讯,涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 为您呈现。订阅未来期刊请访问 http://llvmweekly.org 并分享给您认为可能感兴趣的其他人。如果您有任何建议或反馈,请发送邮件至 [email protected],或在 Twitter 上关注 @llvmweekly@asbradbury

这个周末我将在 FOSDEM 上谈论 lowRISC 项目,该项目旨在生产一款完全开源的 SoC。欢迎您来我的 主轨演讲,并阅读我的 演讲者访谈 以了解更多背景信息。当然,周日还会有一个 LLVM 工具链开发室

本期内容的官方源地址 可以在 llvmweekly.org 上找到

来自网络的新闻和文章

Stephen Diehl 撰写了一篇关于 为 Python 编写 LLVM 专门化器 的绝对精彩教程,指导您完成创建类似于 Numba 的东西的过程。

一个新的工具,Dwgrep(DWARF Grep)可能对许多 LLVM 每周的读者感兴趣。这 篇博文 介绍了它的使用方式。

Paul Smith 在他的博客中发表了一篇关于 如何开始使用 LLVM C API 的博文。

官方 LLVM 博客上的一篇文章宣布 LLDB 将登陆 Windows,宣布在更广泛的受众面前,现在可以使用 LLDB 在 Windows 上调试简单的程序,并解释了将 LLDB 移植到 Windows 并添加对 MS 调试格式的支持的理由。这篇文章还包含一个待办事项列表,说明 Windows 支持的下一步计划。

IA-32 psABI(处理器特定应用程序二进制接口)的 0.1 版本草案已 发布。它旨在以与 SSE1-4 和 AVX 等新功能相关的约定来补充现有的 System V ABI。欢迎您发表 评论

LLVM/Clang 3.6-rc1 现已 发布。开始测试并提交错误报告。

ELLCC 0.1.8 已发布。ELLCC 是一个基于 LLVM/Clang 的交叉编译工具链。

LLDB 现在 拥有自己的 IRC 频道。您需要加入 irc.oftc.net 上的 #lldb 频道。

邮件列表上的内容

  • Chandler Carruth 发布了一篇关于 规范化相关的 RFC。他演示了一个简单函数编译成两个等效 IR 序列的情况。这后来 被提交

  • Michael Zolotukhin 提议了一篇关于添加完整循环展开启发式的 RFC。目前,循环展开启发式方法没有考虑可能因循环展开而启用的任何新优化。更改这一点将允许更准确地估计展开的盈利能力。

  • Chandler Carruth 准备默认启用他的矢量洗牌工作的下一部分。现在是您在代码库上使用 -x86-experimental-vector-shuffle-legality 进行基准测试并报告任何您看到的回归的好时机。

  • Ahmed Bougacha 在 饱和指令的成本模型计算方面遇到问题。成本被高估了,因为许多单独的 IR 指令在后面的降低过程中会被折叠掉。他建议在 TargetTransformInfo 中添加一个新的方法来进行多指令成本计算。到目前为止还没有收到太多反馈。

  • Chandler Carruth 一直在 查看 LLD 库,并试图弄清楚当前的分层结构,以及未来的潜在分层结构。他建议提供一个提供基本功能的基本库,以及一个提供更高层接口的第二个库,用于实际执行链接。

LLVM 提交

  • 添加了一个针对 Linux 内核中扩展的 BPF(Berkeley Packet Filter)解释器/JIT 的后端。有关更多背景信息,请参见 这篇 LWN 文章r227008

  • 新的 ORC JIT API 的初始版本已经发布。r226940

  • 本周新 Pass Manager 的工作进展迅速。我将选择重点介绍的一个提交是将 InstCombine 移植到新的 Pass Manager,这似乎是一个里程碑式的事件。r226987

  • LLVM 学习了如何在 AArch64 上使用 GHC 调用约定。r226473

  • InstCombine 现在将规范化只存储到特定地址的加载操作,始终使用合法的整数类型(如果存在)。r226781

  • 为内联函数诞生的 llvm_any_ty 类型。r226857

  • llvm-objdump 现在理解 -indirect-symbols,用于转储 Mach-O 间接符号表。r226848

Clang 提交

  • Clang 现在支持 SPIR 调用约定。r226548

  • 现在可以在命令行上设置堆栈探测大小。r226601

  • Clang 获得了对 Win64 SEH IR 发射的初步支持。r226760

其他项目提交

  • Sun Solaris 用户,现在是庆祝的时候了。libc++ 现在可以在您选择的平台上构建。r226947

  • lld 中的 ARM 静态链接的最小实现已经发布。r226643

  • 在 openmp 中添加了对 PPC 的基本支持。r226479