LLVM 每周 - 第 5 期,2014 年 2 月 3 日
欢迎来到 LLVM 每周的第五期,这是一份每周发布的通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的进展。LLVM 每周由 Alex Bradbury 为您提供。订阅未来的期刊,请访问 http://llvmweekly.org,并将其转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury。我一直在更新整个星期的 @llvmweekly Twitter 帐户,所以如果你想要更频繁的新闻更新,请关注它。
我担心我对邮件列表活动的总结比平时要少得多,因为我这个周末一直在忙着搬家和感冒。如果你认为我错过了一些重要的事情,请告诉我。
本期的规范地址 可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
这个周末,FOSDEM 2014 举办了一个 LLVM 会议室。部分演讲的幻灯片已经 发布。希望视频随后会发布。
Pocl(便携式计算语言)0.9 已经 发布。Pocl 的目标是成为 OpenCL 1.2 标准的高效 MIT 许可实现。
Mike Ash 发布了一个有用的 libclang 简介。
你是否曾经想要在 Rust 中使用 LLVM?这篇文章 将告诉你如何做到。
Phoronix 发布了对 AMD Kaveri 上的 Clang 3.4 与 GCC 4.9.0 20140126 的基准测试。
在邮件列表上
关于 LLVM/Clang 中 SEH 支持状态 的问题,在 6 月份 SEH 关键专利到期后迅速偏离了主题。讨论转向了 LLVM 的 关于专利的开发者政策,以及 LLVM 或 Clang 邮件列表是否适合讨论这些问题。最后,Chris Lattner 介入以澄清该政策。技术讨论 转移到此主题。
Pekka Jääskeläinen 回答了一个 bugpoint 问题,并提供了 使用带有自定义 exec-command 选项的 bugpoint 的有用指南。
Nick Lewycky 建议 使 datalayout 成为 LLVM 模块的强制性部分。
Chandler Carruth 在 RFC 中提出,BlockFrequency 是错误的指标,不适合用于配置文件信息。
Sara Elshobaky 寻求关于在 lli 下运行 LLVM 字节码时查找 已执行指令数量 的建议。其中有许多建议,包括 callgrind、Pin 和其他类似工具。
Markus Timpl 提出一个关于 描述改变两个寄存器值的加载指令 的有趣问题。
Baoshan Pang 写信给 LLVM 列表,询问 如何开始参与 LLVM。如果你曾经给我发邮件,建议你想得到更多关于如何深入参与 LLVM 的提示,那么这个主题就是为你准备的。
LLVM 提交
TargetLowering 获得了一个钩子,目标可以通过它来指示是否应将常量的加载转换为仅常量。 r200271。
针对 win32 时,COFF 文件现在支持行表调试信息。 r200340。
LLVM 现在拥有一个行编辑库的雏形,最初用于 clang-query,但在未来可能也会被 LLDB 使用。 r200595。
R600 后端学习了
S_SENDMSG
和BUFFER_LOAD_DWORD*
指令的内联函数。 r200195,r200196。循环向量化器现在支持通过标量化来支持条件存储(它们放在 if 语句后面)。这将 SPEC libquantum 基准测试的性能提高了 4.15%。 r200270。
MCSubtargetInfo 现在被明确地传递给 MC 模块中的
EmitInstruction
、EmitInstTo*
、EncodeInstruction
和其他函数。 r200345 等。llvm-readobj 学会了解码 ARM 属性。 r200450。
现在允许对 llvm.{sqrt,fma,fmuladd} 进行推测性执行。 r200501。
Clang 提交
位置无关代码 (PIC) 现在在 Android 目标上默认启用。 r200290。
引入了 Parser::completeExpression 函数,它返回给定表达式和完成位置的完成列表。 r200497。
32 位和 64 位 MIPS 目标的默认 CPU 现在分别为 mips32r2 和 mips64r2。 r200222。
ARM 和 AArch64 后端进行了一些重构,以共享 NEON 内联函数。 r200524 等。