LLVM 项目博客

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

LLVM 每周 - 第 25 期,2014 年 6 月 23 日

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

本期文章的官方地址 可以在 llvmweekly.org 上找到

来自网络的新闻和文章

Facebook 发布了他们在内部使用的一些 clang 插件。这包括主要针对 iOS 开发的 clang 分析器插件,以及将 Clang AST 导出到 JSON 的插件。代码 可在 Github 上获得,他们已经开始在 邮件列表上进行讨论,讨论将部分代码上移。

本周发布了 LLVM 和 Clang 3.4.2 的 发布版本。这是一个错误修复版本,它保持与 3.4.1 的 ABI 和 API 兼容。

Clang 的 C++ 状态页面 现在列出了 C++1z 功能状态

在邮件列表上

  • Rafael Espíndola 开启了一个线程来讨论 LLVM 向后兼容性承诺的澄清。他总结了当前的政策(旧的 .bc 在读取时会升级,.ll 兼容性没有强保证)。随后的讨论大部分是关于元数据格式更改等问题。

  • Duncan P.N. Exon Smith 发布了 对新通道管理器的当前形式的审查。他从对 Chandler Carruth 的新 PassManager 基础设施提供的功能进行了高层次的概述,并列出了一些疑问和担忧。目前还没有回复,但如果你对 LLVM 内部开发感兴趣,值得关注这个线程。

  • 本周带来了两个独立的关于 LLVM 代码覆盖支持的提案(在撰写本文时都没有回复)。Christian Holler 建议包含 LLCov 代码。这是一个模块通道,它使用对跟踪覆盖范围的函数的调用来对基本块进行插桩。当前的 LLCov 代码 可在 Github 上获得。Alex L 也发布了一个关于 改进 Clang 和 LLVM 代码覆盖支持的详细提案。在开始提交补丁之前,他希望收到有关该方法的反馈。

LLVM 提交

  • LLVM 全局锁已经消亡,LLVM 程序员手册已更新以反映这一点。llvm_start_multithreadedllvm_stop_multithreaded 已被移除。
    r211277r211287

  • 用于改进 MergeFunctions 性能的补丁集(从 O(NxN) 到 O(N x log(N)))终于完全合并。 r211437r211445 等等。

  • 范围元数据现在可以附加到调用和调用(以前只能附加到加载)。 r211281

  • Support 库中的 ConvertUTF 被修改为查找格式错误的 UTF-8 序列的最大子部分。 r211015

  • LoopUnrollPass 现在将尊重元数据中的循环展开提示。 r211076

  • R600 后端已更新为使用 LDS(本地数据共享)和向量来处理私有内存。 r211110

  • X86FastISel 继续改进,包括针对谓词的优化、cmp 折叠以及对 64 位绝对重定位的支持。 r211126r211130

  • SLPVectorizer(超字级并行)现在将识别并向量化非 SIMD 指令模式,例如 fadd、fsub 或 add、sub 的序列。如果它们有利可图,它们将被向量化为向量洗牌。 r211339

  • LLVM 现在可以在 Win64 上生成本机展开信息。 r211399

Clang 提交

  • Clang 的 OpenMP 实现现在包含对 'reduction' 子句、#pragma omp for、'schedule' 子句、'ordered' 子句和 'nowait' 子句的初始支持。 r211007r211140r211342r211347r211352

  • MS ABI 支持继续合并对 x86-64 RTTI 的支持。 r211041

  • -std=c+++1z 标志已添加以启用对 C++17 功能的支持。 r211030

  • clang 用户手册已扩展,其中包含使用插桩进行配置文件引导优化的文档。 r211085

  • ARM NEON 内在函数的发射已完全重写,使其更易于阅读和维护,并提供更好的保护,防止编码错误。 r211101

其他项目提交

  • compiler-rt 现在为 IEEE 四精度浮点数提供加、减和乘。 r211312r211313