LLVM 每周 - 第 13 期,2014 年 3 月 31 日
欢迎来到 LLVM 每周的第十三期,这是一份每周发布的新闻稿(每周一发布),涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 为您提供。在 http://llvmweekly.org 上订阅未来的问题,并将它转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury。
在很大程度上得益于 Raspberry Pi 博客上的提及,由我和 Ben Everard 合著的 用 Raspberry Pi 学习 Python 在撰写本文时已成为亚马逊英国编程书籍类别中的畅销书。此外,请关注 X-Dev 伦敦聚会页面,因为我预计将在 4 月 9 日在那里发表一个与 LLVM 相关的演讲,不过它还没有被列出来,并且可能会发生变化。
本期文章的正版主页可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
距离 EuroLLVM 2014 仅剩一周时间,它将于 4 月 7 日和 8 日在爱丁堡举行。不幸的是我不能去,因为我正在努力完成我的博士学位,但日程安排看起来很棒。
Linux 协作峰会展示了使用 LLVM/Clang 构建 Linux 内核的 LLVMLinux 项目的最新进展(幻灯片)。截至目前,大约有 48 个内核补丁正在逐步上游整合到该项目中。
John Regehr 写了一篇有趣的博客文章,主题是 使用 Z3 来证明关于 LLVM 优化的某些问题。
Facebook 已 发布了 Warp C 和 C++ 预处理器,用 D 语言编写。它声称比 GCC 的预处理器快得多,从而导致构建时间更快,尽管与 Clang 的 快速比较 在速度方面并没有显示出有利的一面。
Meeting C++ 发布了关于 可能进入 C++17 或 C++1y 的内容 的有用总结。
在邮件列表中
Apple 正在 将他们的 64 位 ARM 后端贡献到上游。最初,这将与当前的 AArch64 后端共存(Apple 的实现称为 ARM64),随着时间的推移,这些后端将合并。
Tom Stellard 已 [宣布 LLVM 和 Clang 3.4.1 的暂定发布计划] 并在寻找志愿者进行测试,以及需要包含的补丁的提名。建议的计划是 3 月 26 日至 4 月 9 日:识别并将更多错误修复回滚到 3.4 分支。4 月 9 日至 4 月 18 日:测试阶段 4 月 18 日:3.4.1 发布
Frank Winter 开始了关于 如何在 LLVM IR 中指定指针的对齐方式 的讨论,这产生了一些有趣的回应。
Renato Golin 发起了关于 在 LLVM/Clang 中支持命名寄存器的讨论。这是一个目前不支持的 GNU 扩展。似乎有人同意值得支持这一点,这导致了关于 如何实现对命名寄存器的支持 的后续讨论。
来自 Geoffrey Irving 的关于如何安全使用浮点舍入模式的 查询 导致了关于如何支持更改舍入模式的有趣讨论。例如,通过引入
fp_rounding_sensitive
注释。
LLVM 提交
已添加 ARM 大端目标 armeb 和 thumbeb。 r205007。
Apple 的 ARM64 后端已合并,并将暂时与现有的 AArch64 后端并存(有关更多详细信息,请参阅“在邮件列表中”)。 r205090。
Windows 目标三元组拼写已规范化。有关完整详细信息,请参阅提交内容,但简而言之,i686-pc-win32 现在是 i686-pc-windows-msvc,i686-pc-mingw32 现在是 i686-pc-windows-gnu,i686-pc-cygwin 现在是 i686-pc-windows-cygnus。 r204977。
针对 PowerPC 的小端代码生成的第一步已提交。此初始补丁允许 PowerPC 后端生成小端 ELF 对象。 r204634。
另一个 LLVM 优化传递已被修复以支持地址空间感知,并且将不再执行 addrspacecast。 r204733。
现在不允许别名指向弱别名。 r204934。
CloneFunctions 现在将克隆所有属性,包括调用约定。 r204866。
DebugInfo 获得了对压缩调试信息部分的支持。 r204958。
Clang 提交
静态分析器现在了解内核 malloc 的
M_ZERO
和__GFP_ZERO
标志。 r204832。Clang 学会了如何以 MSVC 的方式对字符串进行去重。 r204675。
可以在 typedef 声明和结构声明上声明功能属性。 r204657。
module.private.modulemap
和module_private.map
现在已记录在案。 r205030。Clang 的 CodeGen 模块现在允许不同的 RTTI 发射策略。这是为 ARM64 添加的。 r205101。