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。