LLVM 每周 - 第 49 期,2014 年 12 月 8 日
欢迎来到 LLVM 每周的第 49 期,这是一个每周发布一次的新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的最新进展。LLVM 每周由 Alex Bradbury 为您带来。订阅未来的期数,请访问 http://llvmweekly.org,并将它传递给您认为可能感兴趣的其他人。请将任何提示或反馈发送到 [email protected],或在 Twitter 上发送到 @llvmweekly 或 @asbradbury。
本期文章的规范地址 可以在 llvmweekly.org 找到。
网络上的新闻和文章
2014 年 LLVM 开发者会议的视频和幻灯片大部分都 已上线。遗憾的是,苹果员工的演讲还没有视频。希望它们能尽快发布。
QuarksLab 有一篇关于 反混淆受 OLLVM 保护的程序 的相当不错的文章。
基于 LLVM 的 ELLCC 已经在 ELK,一个裸机 POSIX 式环境 上取得了进展。
对 statepoints 的支持本周在 LLVM 中实现,Philip Reames 有一篇博客文章详细介绍了 一些注意事项和警告。另请参阅下面链接的邮件列表讨论,了解 LLVM 中未来 GC 计划。
邮件列表
Sami Liedes 分享了他使用 afl-fuzz 与 Clang 测试套件的工作流程。在他 11 小时的测试中,他设法找到了 34 个不同的断言失败,以及至少一个段错误。
Duncan P.N. Exon Smith 分享了他关于元数据值拆分的最新工作,详细说明了这将带来的新的语义限制。
Philip Reames 发布了一篇帖子 详细介绍了他未来在 LLVM 中的 GC 计划。欢迎评论。目标是最终删除现有的 gcroot 降低代码。如果您正在积极使用它,请务必发言。
John Yates,Apollo Computer DN10K 编译器的开发者,分享了该编译器如何处理 Souper 工作中最近的示例之一的描述。
您如何使用
opt
复制 Clang 的-O3
?答案,感谢 Tobias Grosser,是clang -O3 -mllvm -disable-llvm-optzns
,然后是opt -O3
。Tobias Grosser 正在寻求社区对 Polly 循环优化器应该在流水线的哪个位置运行 的反馈。这篇文章值得一读,因为它讨论了预期的权衡取舍。
Rafael Espíndola 一直在 LTO 期间进行类型合并,最终 建议在 LLVM IR 中迁移到单个指针类型。考虑到指针类型不会向优化器传达有用的信息,并且实际上不会提供安全性,因此该想法似乎得到了积极的反馈。
LLVM 提交
用于垃圾回收的 statepoint 基础设施已经实现。有关文档,请参阅该系列的最终补丁。 r223078,r223085,r223137,r223143。
LLVM 汇编器获得了对 ARM 的奇特修改后的立即数汇编语法支持。 r223113。
OCaml 绑定现在有一个 CMake 构建系统。 r223071。
PowerPC 后端获得了对 PPC32 上的 readcyclecounter 的支持。 r223161。
已添加对函数上的“prologue”元数据的支持。这可用于在函数入口点插入任意代码。以前这称为前缀数据,该术语已被回收用于在函数入口点之前插入数据。 r223189。
PowerPC 获得了 Power8 指令调度定义 r223257。
Clang 提交
vtable 地址的 LLVM IR 现在使用被指向字段的类型,以启用更多优化。 r223267。
已添加新属性来指定 AMDGPU 寄存器限制。这是一个性能提示,可用于尝试限制使用的寄存器数量。 r223384。
Clang 获得了
__has_declspec_attribute
预处理器宏。 r223467。__has_attribute
现在只查找 GNU 风格的属性。您应该可以使用__has_cpp_atribute
或__has_declspec_attribute
替代。 r223468。