LLVM 项目博客

LLVM 项目新闻和来自战壕的细节

LLVM 周刊 - 第 6 期,2014 年 2 月 10 日

欢迎来到 LLVM 周刊的第六期,这是一个每周发布(每周一发布)的时事通讯,涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 周刊由 Alex Bradbury 提供。订阅未来期刊请访问 http://llvmweekly.org,并将它传递给您认为可能感兴趣的任何人。请将任何提示或反馈发送到 [email protected],或 @llvmweekly@asbradbury 在 Twitter 上。我一直在更新 @llvmweekly Twitter 帐户 整个星期,所以如果你想要更频繁的新闻更新,请关注它。

本期文章的规范地址 可以在 llvmweekly.org 找到

来自网络的新闻和文章

Alexi Starovoitov 已 发布了针对 Linux 内核的 BPF 扩展版本的 LLVM 后端。可以通过 BPF 编译和运行的程序类型示例可以 在此处找到

现在距离提交即将举行的 EuroLLVM 2014 的演示文稿、教程、海报等的提案还有不到一周的时间。开始写吧!

LWN 对最近关于 GCC 邮件列表上 LLVM 及其许可证的讨论的报道现在 对非订阅者开放

Renato Golin 在 GCC 邮件列表上发帖,建议在可能的情况下进行更多合作,例如标准化命令行界面、语言扩展或一般的技术讨论。我知道一个 GCC 开发人员的邮件列表,他们希望了解 LLVM/Clang 的最新进展,应该订阅......

Phoronix 已 发布了一个基准测试,在 Intel Core i5-4670 系统上比较了 GCC 4.8.2、GCC 4.9 快照和 Clang 3.4。

在邮件列表上

LLVM 提交

  • x86 后端通过将一些 x86 位操作指令的匹配从 X86ISelLowering.cpp 移动到 X86InstrInfo.td 而略微简化。我提到这个提交主要是作为对那些正在处理 LLVM 后端代码的人的有用参考。 r200824

  • 寄存器分配器获得了一种新的“最后机会重新着色机制”。不幸的是,提交消息中没有包含有关此机制如何改进给定代码库的寄存器分配的任何数据。 r200883

  • 旧的 SmallPtrSetImpl 被重命名为 SmallPtrSetImplBase,并引入了新的 SmallPtrSetImpl。这个新的 SmallPtrSetImpl 不需要在它的模板参数中指定特定的集合大小。 r200688

  • 在 CodeGenPrepare 中添加了许多代码,这些代码试图将符号扩展从加载中移开,以增加地址计算能够折叠到类似 x86 的具有复杂寻址模式的体系结构的加载中的可能性。 r200947

  • strchr(p, 0) 现在被简化为 p + strlen(p)r200736

  • 有关处理次要(“点”)版本的的信息已添加到 HowToReleaseLLVM 文档中。 r200772

  • MIPS 汇编程序学会了理解 %hi(sym1 - sym2)%hi(sym1 - sym2) 表达式。 r200783

  • Mips 获得了 NaCl 目标。 r200855

  • LLVM 现在假定汇编程序支持 .loc 指令,用于指定调试行号。 r200862

  • 内联程序已修改,在决定是否内联时会考虑函数的 cold 属性。 r200886。后面的提交将 inlinecold-threshold 设置为与 inline-threshold 相同,以便目前内联行为得以保持。 r200898

  • 延迟调用图分析传递的初始实现(用于即将发布的新传递管理器)已提交。 r200903

  • TargetLowering 中的 allowsUnalignedMemoryAccess 函数现在接受地址空间参数。这是为像 R600 这样的体系结构添加的,在这些体系结构中,不同的地址空间具有不同的对齐要求。 r200887

Clang 提交

  • 添加了对 MS ABI 兼容的混淆的支持。 r200857

  • 实现了 C++ 缺陷报告 329 中建议的行为。 r200673

  • ARM 目标获得了对 arm_neon.h 中定义的加密内联函数的支持。 r200708

  • forRangeStmt AST 匹配器获得了一个方便的 hasLoopVariable 子匹配器。 r200850

  • 现在支持 -verify-pch CC1 选项。 r200884

  • -fhiding-week-vtables CC1 选项已被移除。 r201011

  • LLVM 的新诊断系统现在已连接到 clang 的诊断系统。 r200931

其他项目提交

  • 地址消毒器获得两个函数,这些函数将允许 C++ 垃圾收集的实现与它的伪栈一起工作。 r200908

  • 在 lldb 中,Mac OS X SystemRuntime 插件现在使用 libBacktraceRecording 库。 r200822