LLVM 每周 - 第 121 期,2016 年 4 月 25 日
欢迎来到 LLVM 每周的第 121 期,这是一个每周发布的新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的最新发展。LLVM 每周由 Alex Bradbury 提供。订阅未来的版本请访问 http://llvmweekly.org,并转发给您认为可能感兴趣的任何人。任何建议或反馈请发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury。
本期文章的规范地址 可以在 llvmweekly.org 找到.
来自网络的新闻和文章
祝贺今年在 Google 暑期代码计划中被 选中参与 LLVM 项目的 8 位学生。距离他们开始编码还有大约一个月的时间。从现在到他们开始编码这段时间被称为“社区融合期”,所以请务必让他们感到宾至如归。
LLVM/Clang 3.8.1 的初步发布计划 已经发布。此发布计划的合并请求截止日期为 5 月 25 日,最终版本将在 6 月 15 日发布。
邮件列表中的讨论
一系列 RFC 围绕着 添加一个效率分析工具 的想法被发布。与现有的分析工具类似,该工具将依赖于基于编译器的动态插桩来检测用户代码中的问题。其目标是收集有用的信息,同时保持开销低于 5 倍,理想情况下接近 3 倍。另外还开始了独立的讨论线程来讨论 效率分析器缓存碎片工具 和 工作集工具。
Sanjoy Patel 提出 移除 llvm.expect 内在函数,转而使用元数据来表示相同的信息。目前 对此尚无完全一致的意见。
Richard Trieu 正在寻求有关 哪些浮点数到布尔值的转换应该触发警告 的反馈。
如何将修正信息添加到 MachineInstruction 中?Tim Northover 给出了答案。
Elena Lepilkina 分享了 关于向 LNT 添加自定义指标和测试参数化的 RFC。到目前为止,反馈似乎是积极的。
Phil Tomson 正在寻求 有关 LLVM 中指令调度方面的建议。正如他在电子邮件中提到的,这是 LLVM 中在过去 8 年左右时间里经历了许多变化的部分。我当然对这里的答案很感兴趣。
LLVM 提交
优化二分支持的实现已经完成。这有助于通过允许在编译时有选择地禁用优化来跟踪错误,从而识别导致错误编译的优化。 r267022.
AArch64 和 ARM 线程指针内在函数已经合并为一个目标独立的
llvm.thread.pointer
内在函数。 r266818.llvm.load.relative 内在函数已经添加。 r267233.
DebugInfo 已经进行了一些变更,这将需要进行 bitcode 升级。在提交消息中链接了一个执行此升级的脚本。 r27296.
ORC JIT API 改进了对 RPC 的支持,包括支持调用具有返回值的函数。 r266581.
引入了可修补函数函数属性,表示该函数应该能够在运行时轻松修补。 r266715.
IntrReadArgMem 内在函数属性被拆分为 IntrReadMem 和 IntrArgMemOnly。 r267021.
MachineCombiner 获得了将 AArch64 fmul 和 fadd 合并为 fmadd 的能力。 r267328.
为 Sparc 添加了调度行程,特别是针对 LEON 处理器。 r267121.
Clang 提交
创建了包含修复工具的原型。索引器还有待编写。 r266870.
添加了一个新的警告,如果编译器尝试隐式实例化模板但找不到模板定义,则会触发该警告。 r266719.
添加了针对效率分析器的初始驱动程序标志。 r267059.