主要观点:对关于编译器相关讨论的回复,指出 V8 从开始就限制了自身,SoN 有诸多优势,如等价类别名等工具,在效果处理、控制流等方面比其他编译更简单高效,同时提到调试、复杂调度等方面的观点和做法,认为编译速度等问题可能有其他原因。
关键信息:
- V8 抛弃等价类别名,导致后续问题。
- 强类型语言中等价类别名免费且能带来稀疏干净的效果链。
- SoN 中等价类别名直接用普通节点和边表示,效果处理更简单高效。
- 控制效果节点的方法,如通过格和范围检查消除。
- 调试不用图而用 ASCII 转储。
- 复杂调度算法的修正。
- 访问顺序用工作列表保证线性时间。
- 其他方面如死代码消除、引入新控制流、确定循环内内容、编译速度等的观点。
重要细节: - 强类型语言中等价类别名从解析器直接得出无需再处理。
- Java/Simple/C 效果链稀疏干净,JS 因非强类型有工程权衡。
- C2 中通过格和范围检查消除来优化控制效果节点。
- 调试用正常 ASCII 转储,近期有更好的图调试场景。
- 复杂调度算法修正后快速简单。
- 访问顺序用工作列表及处理回边。
- 各种优化在不同方面的作用和实现方式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。