LLVM 项目博客

LLVM 项目新闻和来自前线的详细信息

LLVM 每周 - 第 21 期,2014 年 5 月 26 日

欢迎来到 LLVM 每周的第 21 期,这是一份每周发布(每周一发布)的时事通讯,涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 为您提供。订阅未来的问题,请访问 http://llvmweekly.org 并将其转发给您认为可能感兴趣的任何人。请将任何建议或反馈发送至 [email protected] 或在 Twitter 上发送至 @llvmweekly@asbradbury

我已回到英国,大部分的时差也已恢复。然而,令我不安的是,过去一周 GMANE 上的所有邮件列表似乎都没有更新,而且我在网上也找不到任何解释。GMANE 是一个重要且非常有用的自由软件开发列表的聚合器和存档器,我真希望这只是一些暂时的故障。在本期中,我改为直接链接到 UIUC 的 Mailman 存档。

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

来自网络的新闻和文章

Jonathan Mah 编写了一个 用于检查 Objective C 代码中的键路径字符串的 Clang 插件。该实现 已在 Github 上提供

LWN 发布了一篇关于 ThreadSanitizer v2 的文章

本周,AArch64 和 Apple 提供的 ARM64 后端的合并工作已完成。旧的 AArch64 已被删除,将 AArch64 中的代码合并到 ARM64 后,结果被重命名为 AArch64。

一篇名为 'LLVM IR 程序的静态能耗分析' 的论文已发布在 arXiv.org 上。

邮件列表

LLVM 提交

  • 添加了一个新的属性“nonnull”。当应用于参数或返回指针时,这表示它不为空,这可能允许额外的优化(至少避免该值与空值之间的比较)。r209185r209193

  • 添加了 llvm.arm.undefined 内在函数。这用于在 ARM 上生成 0xde 操作码。它接受一个整数参数,该参数可能被操作系统用于在陷阱上实现自定义行为。 r209390

  • MIPS 反汇编器已进行了一些工作。已添加对 MIPS64r6 的一些支持,并修复了各种问题。 r209415

  • LLVM 学习了 -pass-remarks-missed-pass-remarks-analysis 命令行选项。-pass-remarks-missed 在一个过程试图应用一个变换但失败时显示诊断信息。-pass-remarks-analysis 显示有关分析结果的信息。 r209442

  • 已更新 llvm.mem.parallel_loop_access 元数据的文档。 r209507

  • 旧的 AArch64 已被删除,ARM64 被重命名为 AArch64。 r209576r209577

Clang 提交

  • clang-format 已获得了更多 JS 支持。它现在可以重新格式化 ES6 箭头函数和 ES6 解构赋值。 r209112r209113

  • clang 静态分析器的实验性检查器 现在有文档r209131

  • clang 添加了对全局命名寄存器的支持,使用的是最近添加的 LLVM 内在函数。 r209149

  • Clang 学习了 no_split_stack 属性,用于在每个函数的基础上关闭拆分堆栈。 r209167

  • Clang 学习了 flatten 属性。这会导致尽可能将函数中的调用内联。 r209217

  • pragma omp simd 的代码生成初始版本已提交。这也添加了 CGLoopInfo,它是一个用于使用 llvm.mem.parallel_loop_access 元数据标记内存指令的帮助程序。 r209411

  • pragma clang optimize {on,off} 已实现。这允许您有选择地禁用特定函数上的优化。 r209510

  • 与 Microsoft ABI 兼容的 RTTI(运行时类型信息)的实现已落地。 r209523

其他项目提交

  • MemorySanitizer 使用的“链式来源”已重新设计。 r209284