複数エントリCFG設計の難問
RubyのZJITコンパイラが、デフォルト引数評価のために複数のエントリポイントを持つ制御フローグラフを扱う際の設計上の課題について。複数のエントリブロックが存在する場合の支配木計算の問題と、その解決策として検討されている3つのアプローチ(特殊処理、スーパーエントリブロックの合成、CFGの複製)を解説。
RubyのZJITコンパイラが、デフォルト引数評価のために複数のエントリポイントを持つ制御フローグラフを扱う際の設計上の課題について。複数のエントリブロックが存在する場合の支配木計算の問題と、その解決策として検討されている3つのアプローチ(特殊処理、スーパーエントリブロックの合成、CFGの複製)を解説。