LLVM 项目博客

LLVM 项目新闻和来自战壕的详细信息

LLVM 每周 - #40, 2014 年 10 月 6 日

欢迎来到 LLVM 每周的第四十期,这是一份每周发布的时事通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 为您带来。订阅未来期数,请访问 http://llvmweekly.org,并将它传递给您认为可能感兴趣的任何其他人。请将任何提示或反馈发送到 [email protected],或在 Twitter 上通过 @llvmweekly@asbradbury 联系我们。

下周末,我将在慕尼黑参加 OpenRISC 会议,在那里我将介绍 lowRISC 项目,该项目旨在生产一个开源 SoC。我将在 10 月 23 日在伦敦的开源硬件用户组 进行类似的演讲

本期时事通讯的规范主页 可以在 llvmweekly.org 上找到

来自网络的新闻和文章

Capstone 3.0 RC1 已发布 Capstone 是一个开源反汇编引擎,最初基于 LLVM 代码。此版本支持 Sparc、SystemZ 和 XCore 以及以前支持的架构。在其他更改中,Python 绑定现在与 Python 3 兼容。

去年的一篇有趣论文在邮件列表中出现。来自 EPFL,它提出 添加 -OVERIFY 以优化程序以进行快速验证。通过减少要探索的路径数量以及分支条件的复杂性,符号执行工具的性能得到了提高。他们设法将总编译和分析时间最多减少了 95 倍。

下一个剑桥(英国)社交活动 将于 10 月 8 日星期三下午 7:30 举行

在邮件列表中

LLVM 提交

  • 对 PowerPC 的原子加载/存储的扩展已得到改进。 r218922。原子操作的文档也已更新。 r218937

  • 在过去几周,Chandler Carruth 一直在开发新的向量混洗降低实现。有太多提交无法总结,但现在时机已到,新代码路径现在默认启用。它声称在正确条件下(当循环向量化器在 SSE2/SSE3 的热路径中触发时)可以实现 5-40% 的改进。 r219046

  • Cortex-A57 调度模型已得到改进。 r218627

  • SimplifyCFG 现在有一个可配置的阈值,用于折叠具有公共目的地的分支。更改此阈值对于 GPU 程序可能很有用,因为分支在这些程序中开销很大。 r218711

  • 已添加对新发布的 Cortex-M7 的基本支持。 r218747

  • 如上周邮件列表中所讨论,sqrt 本征函数现在将在给出负输入时返回 undef。 r218803

  • llvm-readobj 了解了 -coff-imports,它将打印出 COFF 导入表。 r218891r218915

Clang 提交

  • 已添加对 align_value 属性的支持,匹配 Intel 编译器中属性的行为。提交信息解释了为什么此属性除了 aligned 之外还有用。 r218910

  • 已添加一个相当有用的诊断。-Winconsistent-missing-override 如果覆盖类在其方法上至少指定了一个覆盖,则将在覆盖方法上缺少覆盖时发出警告。 r218925

  • 对 MS ABI 的支持仍在继续。thread_local 现在支持全局变量。 r219074

  • Matcher 和 DynTypedMatcher 有一些很好的性能调整,导致 clang-tidy 基准测试提高了 14%,Dynamic/Registry.cpp 的编译速度提高了 17%。 r218616

  • 现在为未命名的临时对象发出 lifetime.start 和 lifetime.end 标记。 r218865

  • __sync_fetch_and_nand 本征函数已重新添加。有关其删除历史记录,请参阅提交信息。 r218905

  • Clang 获得了 C11 stdatomic.h 的自己的实现。如果存在,系统头文件将优先使用。 r218957

  • Clang 现在了解 -mthread-model 用于指定要使用的线程模型,例如 posix、single(用于裸机和单线程目标)。 r219027

其他项目提交

  • libcxxabi 现在应该适用于 ARM Cortex-M0。 r218869

  • lldb 为脚本化步进获得了初步支持。这是一种能够通过 python 类添加新步进模式的能力。后续提交中的示例在文件开头有大量注释,以解释其操作。 r218642r218650