LLVM 每周 - 第 45 期,2014 年 11 月 10 日
欢迎来到 LLVM 每周的第 45 期,这是一份每周发布的简报(每周一发布),涵盖 LLVM、Clang 和相关项目的最新发展。LLVM 每周由 Alex Bradbury 编写。订阅未来的期刊,请访问 http://llvmweekly.org,并将其转发给您认为可能感兴趣的任何人。请将任何建议或反馈发送至 [email protected],或在 Twitter 上发送至 @llvmweekly 或 @asbradbury。
本期简报的正式地址可以在 llvmweekly.org 上找到。
来自网络的新闻和文章
Adrian Sampson 在他的 Quala 项目状态更新 中描述了在 Clang/LLVM 中为 C 和 C++ 添加自定义类型注解。
Bruce Mitchener 在 Dylan 博客中发布了关于 Dylan 如何与 LLVM 集成 的文章。有趣的是,Dylan 没有链接到 LLVM 库,而是直接生成 bitcode 文件。
Numba 项目发布了 llvmlite,它是一个轻量级的 Python 到 LLVM 的绑定,用于编写 JIT 编译器。该项目基于使用旧的 llvmpy 绑定的经验开发。
Obfuscator-LLVM 已更新,可与 LLVM 3.5 协同工作。
邮件列表中的讨论
Arnaud A. de Grandmaison 在邮件列表上发起了关于 lifetime.start 和 lifetime.end 内联函数语义 的讨论。目前,如果为较小的对象启用生命周期内联函数,自托管构建将会中断。问题在于这是由于对生命周期规范的理解错误导致的,还是仅仅是一个隐藏的错误。Reid Kleckner 建议为简单的栈分配数据案例使用不同的内联函数。他还澄清了他对 栈着色 的定义。接下来是一些关于包含 lifetime.start/lifetime.end 的变换的有效性以及是否需要新的内联函数的深入讨论。
James Molloy 在 Cortex-A57 上实验了调度模型,并 发现了一些奇怪现象。我注意到 MicroOpBufferSize 当前设置为 128,将其降低到 2 似乎没有影响。Andrew Trick 对 实现自定义调度策略 提出了一些建议。
Volodymyr Kuznetsov 及其合作者正在 征求他们关于实现最近发表的控制流劫持保护工作的补丁集的反馈。OSDI 论文可 在此获取。当前的补丁集涵盖了论文中提到的栈保护部分,提供了比栈 cookie 更强的保护,同时开销更低。
Frédéric Riss 对 将 Darwin 的 dsymutil 重新实现为 lld 辅助程序 感兴趣。dsymutil 是一个独立的 DWARF 链接器,用于加载、合并和优化矮人调试信息,并将其写入 .dSYM 文件。
LLVM 提交
PBQP 寄存器分配器的溢出成本和合并效益已进行调整。这似乎在 EEMBC 和 SPEC 等基准测试中带来了百分之几的改进。 r221292,r221293。
新的 SymbolRewriter 传递是一个 IR 到 IR 的转换,允许在编译期间调整符号。它旨在用于消毒剂和性能分析工具中的符号插桩。 r221548。
Hexagon 获得了基本的 ELF 对象发射器。 r221465。
llvm-vtabledump 增加了对 Itanium ABI 的支持。 r221133。
LLVM 的 CMake 构建系统获得了
LLVM_BUILD_STATIC
选项。 r221345。对 Inputs/ 用于额外测试文件的用法进行了文档化。 r221406。
MIPS 后端在支持 N32/N64 ABI 方面取得了里程碑。此提交修复了此 ABI 的所有已知错误,并且 ABITest.py 生成的前 10000 个测试都通过了。 r221534。