LLVM 每周 - #106,2016 年 1 月 11 日
欢迎来到 LLVM 每周的第 106 期,这是一份每周发布(每周一发布)的时事通讯,涵盖 LLVM、Clang 和相关项目的发展。LLVM 每周由 Alex Bradbury 编写。请订阅 http://llvmweekly.org 上的未来期刊,并将其转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送到 [email protected],或在 Twitter 上发送到 @llvmweekly 或 @asbradbury。
本期文章的规范首页 可以在 llvmweekly.org 找到。
许多读者可能感兴趣的是,上周是第三届 RISC-V 研讨会。您可以找到来自两个 lowRISC 演示的幻灯片 这里 和 这里。您可能还想阅读我对该活动的 现场博客。
来自网络的新闻和文章
BSD Now 播客最近 采访了 Alex Rosenberg 关于他在 LLVM/Clang 和 FreeBSD 上的工作。
QuarksLab 的团队分享了一个 Clang 加固速查表。
LLDB 3.8 将 提供 Go 调试支持。
下一次巴黎 LLVM 社交活动将 在 1 月 27 日举行,包括 John Regehr 的演讲。
下一次苏黎世 LLVM 社交活动 将在 1 月 14 日举行。
在邮件列表中
本周邮件列表中的一场长时间讨论是关于新的 LLD ELF 和 COFF 链接器的设计。Rui Ueyama 指出它们目前被设计为命令而不是库。例如,在失败时使用 exit() 被认为是合适的。Chandler Carruth 强烈认为 在 LLVM 伞下的任何项目中支持库接口都很重要。最终似乎达成一致,即对某些用例而言,能够将链接器用作库非常重要,但也认为正在进行这项工作的人(Rui)应该能够以对他最有意义的方式进行开发。他打算首先专注于达到与 GNU 链接器相同的功能,然后研究库接口等问题。
关于新的全局指令选择实现,在该线程中进行了一些讨论,讨论的是 inttoptr 和 ptrtoint 的语义。具体来说,当前指定的语义是否适用于在整数和指针之间转换不是无操作的体系结构。看起来 Philip Reames、David Chisnall 和其他人 应该在接下来的几周内分享一个关于这个问题的 RFC。
Matthew Arsenault 询问有关 TargetTransformInfo getOperationCost 的问题。Hal Finkel 指出 Matt 遇到的问题可能是由于存在两种成本模型。一种用于向量化,另一种用于内联和展开。
James Byerly 提出一个关于 约束求解和不可溢出寄存器类 的有趣问题。他正在针对一个自定义的、看似微码的体系结构,目前还没有收到任何回复。
Steve King 分享了关于 添加 ISD::OPAQUE 来补充 ISD::BITCAST 的一些想法。
LLDB 在 Windows 上的当前状态如何?Zachary Turner 写了一份总结。
Xilinx 和 Microsoft Research Cambridge 都在为 LLVM 相关项目发布实习职位。
LLVM 提交
LLVM 获得了
-print-funcs
选项,可用于将 IR 打印过滤到仅某些函数。 r256952。LLVM ADT 库获得了一种新的用于指针类型和用于在指针类型中嵌入整数的抽象的求和类型抽象。 r257282、 r257284。
LLVM 现在识别 Samsung Exynos M1 内核。 r256828。
InstCombine 通过检测两个 GEP 是否可以表示为具有相同基指针的 GEP 来学习在比较 getelementptr(GEP)时公开更多常量。 r257064。
SelectionDAGBuilder 将为边界内 getelementptr 和加载/存储偏移量设置 NoUnsignedWrap。 r256890。
AArch64 MachineCombine 现在将允许 fadd 和 fmul 指令重新关联。 r257024。
现在支持 DWARFv4 中的宏发射。 r257060。
llvm-symbolizer 获得了
-print-source-context-lines
选项来打印该行周围的源代码。 r257326。
Clang 提交
Clang 的 CMake 构建系统现在可以执行多阶段引导构建,并使用配置文件引导优化。 r256873。
Clang 的命令行前端学习处理一堆
-fno-builtin-*
参数。 r256937。新的 ELF LLD 链接器现在将用于 AMDGPU 目标。 r257175。