エスケープ解析
From Wikipedia, the free encyclopedia
エスケープ解析(エスケープかいせき、英: Escape analysis)とは、コンパイラ最適化理論において、ポインタの動的なスコープを特定するための方法である。エスケープ解析は、ポインタ解析やシェープ解析と関連している。
サブルーチンにおいて変数やオブジェクトが割り当てられるとき、変数へのポインタが、別の実行スレッドや呼び出し元のルーチンに「エスケープ」してしまうことがある。サブルーチンがオブジェクトを割り当て、これに対するポインタを返却すると、オブジェクトはプログラム内の不定の場所からアクセスすることができる。ポインタがグローバル変数やその他のデータ構造に格納された場合にも、現在の処理からエスケープしたと考えることができる。
エスケープ解析は、ポインタが格納されうるすべての場所を特定し、ポインタの生存区間を現在の関数やスレッド内のみに限定してよいかどうかを判断する。