PyPy JIT中用于整数运算窥孔变换规则的DSL

2024-10-23

文章介绍了作者为PyPy JIT编译器开发的一种新的领域特定语言(DSL),用于以声明方式指定整数运算的窥孔优化。作者阐述了引入DSL的动机,即现有的指令式表达方式冗长且容易出错。DSL使用模式匹配来识别和简化整数运算序列,并通过Z3定理证明器在构建过程中自动验证规则的正确性。文章详细介绍了DSL的语法、规则排序、活度分析、规则覆盖率检查、统计信息打印以及正确性和可满足性证明等方面。最后,作者总结了DSL的现状、未来计划和一些待解决的问题。

阅读更多
21
未分类

PyPy 7.3.17 版本发布

2024-09-02

PyPy 团队发布了 PyPy 7.3.17 版本,该版本包括一个新的 RISC-V JIT 后端、一个基于 CPython 团队工作的改进 REPL 以及对整数运算的更好 JIT 优化。新版本包含 PyPy2.7 和 PyPy3.10 两个不同的解释器,分别支持 Python 2.7 和 3.10 的语法和特性。

阅读更多
38
未分类

利用 Z3 挖掘 JIT 轨迹以寻找缺失的优化

2024-07-21

这篇文章介绍了如何利用 Z3 定理证明器,分析 PyPy JIT 轨迹,找出其中可以优化的代码片段。作者首先介绍了如何将 JIT 轨迹转换为 Z3 公式,然后讲解了如何利用 Z3 识别冗余操作和常量布尔值,并以具体的代码示例进行说明。最后,作者分享了一些实验结果,并展望了未来的研究方向。

阅读更多
35
未分类 JIT Z3