LLVM 每周 - 第 103 期,2015 年 12 月 21 日
欢迎来到 LLVM 每周的第 103 期,这是一个每周发布的新闻简报(每周一发布),涵盖 LLVM、Clang 和相关项目的发展情况。LLVM 每周由 Alex Bradbury 编写。订阅未来的期刊,请访问 http://llvmweekly.org,并转发给任何你认为可能感兴趣的人。请将任何建议或反馈发送到 [email protected],或在 Twitter 上联系 @llvmweekly 或 @asbradbury。
本期的官方主页 位于 llvmweekly.org。
常读者们都知道 lowRISC,这是一个我们创建的非营利项目,旨在批量生产一个完整的开源片上系统。我们刚刚发布了 基础 SoC 的非捆绑版本,这是一个新的里程碑。如果你有兴趣参与其中,博客文章中提供了一些潜在的起点。
来自网络的新闻和文章
第六届 EuroLLVM 大会将于 3 月 17 日至 18 日在西班牙巴塞罗那举行。论文征集 现已开放,并将持续开放至 2016 年 1 月 25 日。EuroLLVM CFP
Chandler Carruth 在 2015 年 C++ 大会上的主题演讲“理解编译器优化”现已 上线。
Richard Pennington 在博客中谈到了 使用预编译的 ELLCC 二进制文件引导 LLVM 和 Clang。
彭博社将在 2 月 6 日和 7 日在纽约和伦敦举办 Clang 和 LLVM 周末黑客马拉松。该活动将对社区中的所有人开放,彭博社将提供场地、电源、食物、饮料和互联网接入。他们正在寻找经验丰富的 Clang 和 LLVM 开发人员作为导师。
邮件列表中的讨论
Marshall Clow 提出 在 libc++ 中放弃对 GCC 4.7 之前的版本的支持。Eric Fiselier 建议实际上 GCC 4.7 和 4.8 存在大量的测试失败,4.9 将是一个更明智的要求。
Dmitry Polukhin 提出了一份关于 支持 GCC 的 ifunc 属性的 RFC。他提出了三种潜在的方法,到目前为止反馈更倾向于第二种方法。
Easwaran Raman 发布了一份关于 配置文件引导优化中的热度阈值 的 RFC。该提案试图定义一种确定热点块的方法,该方法适用于很少热点和大量频繁执行块的程序。
LLVM 提交
LLVM IR 现在支持浮点原子加载和存储。 r255737。
引入了新的属性:
InaccessibleMemOnly
(函数只能访问编译模块无法访问的内存)和InaccessibleMemOrArgMemOnly
(函数只能访问编译模块无法访问的内存,或者由其指针参数指向的内存)。 r255778。PowerPC 后端获得了对 ppc32 上软浮点运算的支持。 r255516。
terminatepad
指令已从 LLVM IR 中删除。 r255522。IR 调用指令现在可以接受一个快速数学标志标记,该标记指示快速数学标志可能允许原本不安全的优化。 r255555。
LLVM 在其内部库中获得了一个 C++11 线程池。它旨在用于 ThinLTO。 r255593。
默认的传递集已调整。mem2reg 不会在 globalopt 之后立即运行,并且更多标量优化传递已添加到 LTO 管道中。 r255634。
llvm-profdata 工具现在支持在合并配置文件数据时指定权重。这可用于对多个配置文件运行中的一个运行赋予更大的相对重要性。 r255659。
对于 CMake 构建,现在将生成一个
compile_commands.json
文件,该文件告诉 YouCompleteMe 和clang_complete
等工具如何构建每个源文件。 r255789。Hexagon VLIW 打包程序进行了大量更新(但不幸的是,更改未在提交消息中总结)。 r255807。
许多 LLVM 的 C API 已被弃用:LLVMParseBitcode、LLVMParseBitcodeInContext、LLVMGetBitcodeModuleInContext 和 LLVMGetBitcodeModule。这些已被不记录诊断信息的新版本函数取代。 r256065。
AVR 后端(正在逐步导入)获得了 AVR.td 和 AVRRegisterInfo.td。 r256120。