LLVM 项目博客

LLVM 项目新闻和来自前线的细节

LLVM 周报 - #47, 2014 年 11 月 24 日

欢迎来到 LLVM 周报的第四十七期,这是一份每周一发布的周报,涵盖 LLVM、Clang 和相关项目的最新发展。LLVM 周报由 Alex Bradbury 编写。您可以订阅未来的期数,访问 http://llvmweekly.org,并将其传递给您认为可能感兴趣的任何人。请将任何建议或反馈发送至 [email protected],或者在 Twitter 上发送至 @llvmweekly@asbradbury

本期周报的官方地址为 llvmweekly.org

来自网络的新闻和文章

Capstone 反汇编框架的 3.0 版本 已经发布。Python 绑定已更新以支持 Python 3,此版本还添加了对 Sparc、SystemZ 和 XCore 的支持。它还具有性能改进。

Herb Sutter 撰写了 关于最近的 ISO C++ 会议的旅行报告

Emscripten 已更新为使用来自 PNaCl 团队的 LLVM 3.4。还需要做更多工作才能在 3.5 之上进行重新绑定。

Woboq 发表了一篇博客文章,详细介绍了对 Qt 程序员有用的 C++14 功能,虽然我认为这篇文章的潜在受众比这更广泛。最近的 Clang 当然 对新的 C++14 功能有很好的支持

将在 FOSDEM 2015 上举办一个 LLVM 开发室,演示文稿/演讲/教程的提交截止日期为 12 月 1 日

苹果的 LLVM 源代码工具和程序分析团队 正在寻找 2015 年夏季的实习生

在邮件列表中

  • 如果您想知道在 Clang 中添加 OpenMP 支持的过程进展如何,答案是它仍在进行中,并且希望能够在 3.6 版本中完成,具体取决于代码审查的速度。

  • Siva Chandra 在邮件列表中发起了一个关于 如何更好地管理由 LLVM 或 Clang API 更改造成的损坏 的讨论。Siva 建议 LLDB 应该针对已知的良好版本 LLVM/Clang 进行开发,该版本会定期更新。Vince Harron 表示,除了对所有内容进行基于树的持续构建外,他 还希望在 Clang/LLVM 的精选版本上添加持续构建。这应该有助于提高信噪比,并使 LLDB 开发人员更容易识别破坏性更改是由于他们的添加还是其他地方的更改造成的。Reid Kleckner 建议 lldb 应该被视为与 Clang/LLDB 相同项目的组成部分,并且应该对开发人员施加更大的压力来修复损坏,这可能与 LLVM 中的 API 更改几乎总是伴随着相关的补丁来修复 Clang 的方式相同。

  • Peter Collingbourne 提出 将 llgo 前端添加到 LLVM 项目中。Chris Lattner 赞成这样做,但希望在签入之前看到 GPLv3+ 运行时异常依赖项被重写。主题中有些人表达了担忧,即现有的 LLVM/Clang 审阅者知道 C++,可能无法审阅 Go 中的补丁,尽管看起来现有的 LLVM 审阅者中不乏精通多种语言的审阅者。

  • Brett Simmers 正在开发 HHVM,并且 对是否有方法控制 BasicBlock 在内存中的位置感兴趣,其动机是通过将经常执行的代码部分保持在一起,充分利用指令缓存。人们普遍认为这将是一个很棒的功能,但听起来现在 LLVM 中并不容易支持。

LLVM 提交

  • 一个小的文档修复获得了 提交 222222 的荣誉。

  • 一个很小的优化已经提交,如果索引和输出之间存在线性映射,则用 mul 和 add 替换 switch 表。 r222121

  • SeparateConstOffsetFromGEP、EarlyCSE 和 LICM 通道已在 AArch64 上启用。这 对一些 SPEC 基准测试有可衡量的收益r222331

  • noalias 属性的描述已澄清。 r222497

  • MDNode 被拆分为两个类,GenericMDNode 和 MDNodeFwdDecl。 r222205

  • 基于 CMake 的 LLVM 构建系统学会了支持 LLVM_USE_SANITIZER=Threadr222258

  • R600 后端获得了 SIFoldOperands 通道,该通道试图将 mov 和 copy 指令的源操作数折叠到它们的用法中。 r222581

Clang 提交

  • Clang 现在区分 -fpic-fPICr222227

  • 当访问构造函数中的未初始化基类时,-Wuninitialized 警告现在将触发。 r222503

其他项目提交

  • LLDB 现在可以在 Windows 上执行基本调试操作。 r222474

  • LLDB 的行编辑支持已完全重写。 r222163

  • MemorySanitizer 获得了对 MIPS64 的支持。 r222388

  • 一个示例工具被添加到 lldb 中,用于从 Darwin 的紧凑展开部分提取和转储展开信息。 r222127