LLVM 每周 - 第 122 期,2016 年 5 月 2 日
欢迎来到 LLVM 每周的第 122 期,这是一个每周发布的新闻简报(每周一发布),涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 编写。订阅未来的期刊,请访问 http://llvmweekly.org,并将其转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送到 [email protected],或在 Twitter 上发送到 @llvmweekly 或 @asbradbury。
本期期刊的规范地址 可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
GCC 6.1 已经发布。也许最明显的对用户可见的更改是,C++ 前端现在默认使用 C++14。
Rust 编译器已经 引入了一个新的中间表示,MIR,用于在降低到 LLVM IR 之前进行优化。
Tanya Lattner 已经 写下了 LLVM 基金会 2016 年的计划。LLVM 基金会已经建立了 3 个主要项目:教育推广、赠款和奖学金,以及女性参与编译器和工具。
邮件列表上的内容
Dean Michael Berris 分享了一个 关于将 Google 的“XRay”函数调用跟踪系统上游的 RFC。有关更多信息,您可以阅读 XRay 白皮书。
Sanjoy Das 建议 将 AssumptionCache 泛化到 AxiomAche。他建议在 AxiomCache 中维护单独的保护和假设列表。
针对 Phil Tomson 关于指令调度的提问,出现了一些新的活动。Christof Douma 随后 给出了一些建议。
Chris Bieneman 建议 将 CMake 最低版本提高到 3.4.3。Renato Golin 提出了一些担忧,Chandler Carruth 提供了一个反驳观点。
关于引入一个新的 LLVM 子项目,用于并行运行时和支持库的提议,讨论仍在继续。这可以通过阅读 Hal Finkel 对前进方向的思考、C Bergström 的担忧 和 Jason Henline 对子项目的拟议章程 来最好地总结。
Peter Collingbourne 分享了一个 关于重新设计 LLD 符号表的 RFC,目的是提高内存局部性。
LLVM 提交
LLVM 现在支持基于值配置文件的间接调用提升。这将提升间接调用到受先决条件保护的直接调用。 r267815。
LLVM 文档已经扩展了 CMake 入门部分,涵盖了 CMake 脚本语言的基础知识。 r268096。
PDB 转储器已经被重构为一个库。 r267431。
MinLatency 属性已经被从 SchedMachineModel 中移除。 r267502。
CodeGenPrepare 现在将使用分支权重元数据来决定是否将 select 转换为分支。 r267572。
对
llvm.loop.distribute.enable
元数据的支持已经添加。这表示循环应该被拆分为多个循环。 r267672。SystemZ 后端现在支持 Swift 调用约定。 r267823。
libFuzzer 的文档已经被扩展和改进。 r267892。
Clang 提交
clang-tidy 获得了一个新的检查器,用于检查二元运算符两侧的冗余表达式。 r267574。
一个新的 clang-tidy 检查将警告使用像
atoi
和atol
这样的函数,这些函数不报告转换错误。 r268100。全局变量或静态变量上的
nodebug
属性现在将抑制该变量的所有调试信息。 r267746。许多 OpenMP 特性获得了代码生成支持,例如 map 子句和 target data 指令。 r267808,r267811。