LLVM 项目博客

LLVM 项目新闻和来自战壕的细节

LLVM 周刊 - 第 17 期,2014 年 4 月 28 日

欢迎来到 LLVM 周刊的第 17 期,这是一份每周发布的新闻通讯(每周一发布),涵盖 LLVM、Clang 和相关项目的进展。LLVM 周刊由 Alex Bradbury 为您带来。订阅未来几期,请访问 http://llvmweekly.org,并将其转发给您认为可能感兴趣的任何人。请将任何提示或反馈发送至 [email protected],或在 Twitter 上关注 @llvmweekly@asbradbury

上周我很好奇为什么 GCC 的 logo 是一个 从鸡蛋里跳出来的 GNU。感谢所有写信告诉我这是对 EGCS 的引用。GCC 自然以 EGCS 的形式被著名的 fork 掉了,后来又合并了回来。显然,有些人将其发音为“eggs”。谜团解开了。

本期文章的官方地址 可以在 llvmweekly.org 找到

来自网络的新闻和文章

GCC 4.9.0 于 上周二发布。查看 这里,了解有关此版本中更改的更详细说明。

Honza Hubička 在博客上发表了一篇关于 GCC 中链接时优化历史 的文章,随后发表了一篇包含 GCC 中 LTO 与 LLVM 的基准比较 的文章。

在 Twitter 上,@lambdamix 提醒我注意 优化编译器中使用的图算法笔记 (PDF)。我认为这对许多 LLVM 周刊读者来说会很有趣。

在邮件列表中

LLVM 提交

  • 几周前 提出的“musttail”标记 现已添加。与“tail”标记不同,“musttail”保证会执行尾调用优化。查看提交中添加的文档以获取更详细的说明。 r207143

  • BlockFrequencyInfo 的重写终于完成了。新的算法的优点在原始的提交消息中有所描述,r206548。经过一系列反弹后,它最终在 r206766 中完成。

  • LLVM 现在可以生成面向“Windows on ARM”的 PE/COFF 对象文件。 r207345

  • 已添加了使用新的 LazyCallGraph 分析框架的 CallGraph 强连通分量传递管理器。这是 Chandler Carruth 一直在开发的新传递管理器工作的一部分,当然还在开发中。 r206745

  • 英特尔 Silvermont 微架构的调度程序模型已被替换。提交消息声称在整数测试中取得了实质性改进。我假设在这种情况下 RAL 指的是 RegAllocLocal? r206957

  • ARM64 自然经历了大量更改。其中包括对 NEON/FP/CYPTO 指令的特征谓词的支持。这允许编译器在不使用这些指令的情况下生成代码。 r206949。此外,现在还有一个 ARM64 目标机器的大端版本。 r206965

  • getFileOffset 已从 LLVM 的 C API 中删除。理由在提交消息中。 r206750

  • LoopVectorize 传递现在保留了关于已分析循环数量和已矢量化循环数量的统计信息。 r206956

  • x86 后端获得了用于读取时间戳计数器的新的内在函数。 r207127

  • 针对延迟调用图的变异支持的初始工作已完成。与 Chandler 的大多数提交一样,提交消息中还有更多信息。 r206968

  • 已引入 MCTargetOptions,目前只包含一个标志。SanitizeAddress 启用了对内联汇编的 AddressSanitizer 检测。 r206971

  • llvm-cov 现在支持 gcov 的 --long-file-names 选项。 r207035

Clang 提交

  • 添加了对样本分析的文档。 r206994

  • 添加了对解析“omp simd”指令的线性子句的支持。 r206891

  • Clang 获得了对 -fmodules-search-all 选项的支持,该选项会在未导入的模块(即在模块映射中引用但未导入的模块)中搜索符号。 r206977

其他项目提交

  • AddressSanitizer 获得了用于检测“单定义规则”违规(在不同的模块中定义了两个具有相同名称的全局变量)的实验性检测器。 r207210