LLVM 周刊 - 第 58 期,2015 年 2 月 9 日
欢迎阅读 LLVM 周刊的第 58 期,这是一份每周发布的新闻通讯(每周一发布),涵盖 LLVM、Clang 及相关项目的最新进展。LLVM 周刊由 Alex Bradbury 编写。您可以订阅 http://llvmweekly.org 上的未来版本,并将其转发给您认为可能感兴趣的任何人。请将任何建议或反馈发送至 [email protected] 或 @llvmweekly 或 @asbradbury(推特)。
本期新闻的官方地址 位于 llvmweekly.org 上。
来自网络的新闻和文章
Red Hat 开发者博客上有一篇关于 计划随着 GCC 5 更改 G++ ABI 的文章。这是为了完全兼容 C++11。与上次 ABI 更改(libstdc++ 的 soname 发生了更改)不同的是,它将保持不变,取而代之的是使用不同的修饰名称来表示符号。
Quarks Lab 发布了关于如何 在 LLVM 中添加简单的混淆传递 的教程。
邮件列表上的内容
目前计划 将 LLVM 的最低所需 MSVC 提升至 2013。如果您正在使用 MSVC 2012 构建 LLVM,并且出于某种原因会导致您的工作量增加,那么现在就是时候大声说出来。
Chandler Carruth 分享了一份 方便的备忘单,供维护树外目标的人员了解如何适应最近的 TargetTransformInfo 更改。
最近,关于在 LLVM IR 中放弃指针类型的问题已被提出过几次。David Blaikie 表示 愿意自愿进行必要的任务。随之而来的讨论中很大一部分内容是关于如何以增量方式进行此操作,而不会给使用树外传递的人员造成太多问题。Chandler Carruth 提出了一个粗略的工作计划。
James Molloy 发布了一个关于 递归函数内联 的 RFC。
Chris Bieneman 总结了将 CMake 构建系统提升到可以替换 LLVM/Clang 中的 autoconf 的程度 的进展情况。
Karthik Bat 发布了一个 关于在 LLVM 中添加 LoopInterchange 传递的 RFC。这是一个旨在通过缓存局部性提高性能的传递。
LLVM 提交
引入了直线强度约简传递。这旨在简化循环展开后生成的语句。它目前仅针对 NVPTX 启用。 r228016。
一个将函数参数的栈相对移动转换为使用 X86 push 指令的 MachineInstruction 传递。这仅在优化代码大小时才启用。 r227752。
BasicAA 现在将尝试将通过结构体数组对 GetElementPtr 进行歧义解析为不同的字段。 r228498。
继续进行 LLVM 中对 GC 支持的改进工作,其中添加了一个用于将安全点插入任意 IR 的传递。 r228090。
对新发布的 ARM Cortex-A72 的(非常)最小的支持已经完成。目前,A72 被建模为 A57。 r228140。
为完全循环展开添加了新的启发式方法,它会查看如果循环完全展开,哪些加载可能会变为常数。 r228265。
添加了一个用于利用 PowerPC 的预增量加载/存储支持的传递。 r228328。
PDB 阅读器的平台无关接口已经完成。 r228428。
LLVM 学会了识别掩码收集和散射内在函数。 r228521。
Clang 提交
为线程安全分析添加了新功能,现在可以在互斥锁上使用 before/after 注释。 r227997。