LLVM 每周 - #118,2016 年 4 月 4 日
欢迎来到 LLVM 每周的第 118 期,这是一份每周发布的新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的进展。LLVM 每周由 Alex Bradbury 为您带来。订阅未来期数,请访问 http://llvmweekly.org,并将它传递给您认为可能感兴趣的任何人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury。
本期新闻的规范来源 可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
最近的 EuroLLVM 会议上几乎所有的幻灯片现在都 在线提供,供您欣赏。
一些读者可能对一篇关于用于 在 LLVM 中验证精确浮点优化 的 'LifeJacket' 工具的新论文感兴趣。
Christian Neumüller 使用 libclang 编写了一个 用于语法突出显示和交叉引用 C 和 C++ 源代码的新工具。
在邮件列表上
Chandler Carruth 建议,就像破坏代码生成的提交会立即被回滚一样,引入大型,尤其是超线性编译时间回归的提交应该被回滚。在回复中,人们普遍同意这一原则,尽管有些人指出,过去几个 LLVM 和 Clang 版本的大部分速度下降是由于大量的小改动造成的。
James Molloy 有兴趣讨论 LLVM 如何学习特定 std::vector 的大小 并省略不必要的检查等。
Nick Johnson 对 LLVM 中 IfConversion 的几个问题。这些问题尚未得到解答,但我对此答案很感兴趣。
Russell Wallace 启动了一个非常有用的关于 从 JIT 生成对现有函数的调用 的主题。
Zachary Turner 对 人们对要求最低使用 MSVC 2015 来编译 LLVM 和 Clang 的看法 感兴趣。到目前为止,人们普遍认为现在还为时过早,因为通常的策略是支持最近两个主要的 MSVC 版本。
Hans Wennborg 友好地突出显示了 最近对 TargetFrameLowering::eliminateCallFramePseudoInstr 的 API 更改,这将对树外后端的维护者感兴趣。
Matt Masten 发布了一个关于 使用 SVML(英特尔的短向量数学库)向量化包含对数学函数的调用的循环 的 RFC。
Eric Christopher 发布了一个关于 将调试类型信息生成从后端迁移到前端 的 RFC。
Ke Bai 的 内存范围提案 到目前为止还没有收到任何回复。Philip Reames 确实 分享了一些反馈,但他指出,除非有更多兴趣,否则这个提案不太可能被实际合并到 LLVM 中。如果这个领域引起了您的兴趣,请务必仔细阅读 Ke 的提案。
LLVM 提交
Lanai 后端已经落地。 r264578。
添加了一个新的
llvm.experimental.guard
内在函数。正如随附文档中所述,与反优化操作数捆绑一起,这允许前端表达对编译期间做出的乐观假设的保护或检查。 r264976。添加了对许多新的 Altivec 指令的支持。令人惊叹的是,这包括 BCD(二进制编码十进制)指令。 r264568。
引入了 MachineFunctionProperties 的概念,第一个属性是 AllVRegsAllocated。这允许传递声明它们需要特定属性,在本例中需要在寄存器分配之后运行。 r264593。
在 X86 上,现在将在所有优化级别优先使用 push 而不是 mov(之前它只在
-Os
中启用)。 r264966。当元数据只在单个函数中引用时,现在将仅在该函数块中发出元数据。这样做的目的是提高延迟加载的可能性。 r265226。