Skip to content
Latchkey

Control Flow Graph とは?

control flow graph、すなわち CFG は、ノードが basic block、辺がそれらの間の制御の移りうる経路を表す有向グラフとして関数をモデル化します。分岐・ループ・fall-through は、実行がたどりうるあらゆる経路を捉える辺になります。コンパイラはこのグラフを解析して最適化を進め、到達不能コードのような性質を検出します。

なぜ重要か

control flow graph は、デッドコード除去からループ解析まで、ほとんどのデータフロー最適化が操作する構造です。コードを経路のグラフとして見ることで、コンパイラは取りうるすべての実行について推論できます。

関連ガイド