精化 E-Graph:给等价图内建一个偏序关系
来源:philipzucker.com — 2026-10-04
📋 概述
Philip Zucker 提出“精化 E-Graph”的想法:在 e-graph 原生的相等关系之外,内建一个地位相当的 <= 偏序关系。理由在于编译器重写往往不是双向等式,而是单向的“精化”重写——从抽象、不确定的程序或规格,走向可在具体机器上运行的确定形式。许多源语言对求值顺序、整数溢出或除零的结果含糊其辞,而这种含糊恰恰是优化空间。作者给出基于 microegg 的原型 refinement-microegg 与 WASM 演示,并用数字电路中的 “Don't Care” 例子说明:在该语义下 <= 表示逐点集合包含。
🔑 核心要点
- 在 e-graph 原有 = 之外内建一个 <= 偏序关系,两者地位相当
- 编译器重写常常是单向精化,而不是双向等式
- 源语言对求值顺序、溢出、除零的含糊正是优化空间
- 用 “Don't Care” 电路示例说明 <= 即逐点集合包含
💡 金句
精化 E-Graph 的想法,是内建一个 <= 关系,让它享有与 e-graph 原生 = 同等的地位。
👍 0
👎 0
← 返回 Lobsters 首页