レジスタ割り付け
レジスタ割り付けはNP完全問題である。一般にプログラム内の変数の個数は、プロセッサ上で利用可能なレジスタ数より多い。従って一部の変数の内容は適当なメモリ位置に spill(セーブ)される必要がある。spill のコストを最小化するには、最も利用頻度の低い変数から spill するようにすればよい。しかし、各変数の利用頻度をコンパイル時に知るのは容易ではない。さらに、ハードウェアやオペレーティングシステムがレジスタの利用方法を制限することもある。