クリティカルエッジを分割すると便利なのはいつですか?


7

一部のコンパイラには、制御フローグラフの重要なエッジを分割するユーティリティ関数があります。これはそれ自体最適化としてではなく、他の分析と変換を単純化するために行われていると思います。クリティカルエッジの分割が役立つのはどのような場合ですか?

回答:


5

簡単なグーグル検索は、Muchnick、Advanced Compiler Design&Implementation、Section 13.3 Partial-Redundancy Elimination、pp 407-408に示されています。

アルゴリズムの重要な点は、フロー分析が実行される前にフローグラフのクリティカルエッジが分割されている場合、はるかに効果的である可能性があることです。

したがって、この概念は、冗長性の排除における特定のフロー分析の効率を高めるのに役立ちます。これは、共通の部分式を持つコードの部分を見つけ、それらを単一の計算に引き上げることで、クリティカルエッジがない場合に容易になります。


答えてくれてありがとう。分割の結果、フロー分析アルゴリズムがどのように簡略化されるか、具体的に教えていただけますか?
zr。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.