レジスタ割り付け
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/01 04:36 UTC 版)
レジスタ割り付け(レジスタわりつけ、英: Register allocation)は、プログラム内の多数の変数を少数のCPUレジスタに多重化するコンパイラ最適化技法のひとつである。その目標は、プログラムの実行速度を最大化すべく、なるべく多くのオペランドをレジスタに保持するようにすることである。レジスタ割り付けは基本的なブロックについて行う場合(ローカルレジスタ割り付け)と関数やプロシージャ全体について行う場合(グローバルレジスタ割り付け)がある。レジスタ割り当てとも呼ぶ。
- ^ linear scan allocation
- ^ Kong, Wilken, Precise Register Allocation for Irregular Architectures, [1]
- 1 レジスタ割り付けとは
- 2 レジスタ割り付けの概要
レジスタ割り付け
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/28 15:48 UTC 版)
詳細は「レジスタ割り付け」を参照 コンピュータプログラムのコンパイラは、あるプログラミング言語から別の言語への翻訳を行う。その結果生成されるコードの実効効率を向上させるため、レジスタ割り付けというコンパイラ最適化技法が使われる。これは、プログラムで頻繁に使う値を高速なレジスタに保持し続けるようにするものである。理想的には演算に使用する値が常にレジスタに存在することが望ましい。 典型的な技法として、この問題をグラフ彩色問題にモデル化する。コンパイラは頂点をレジスタ(変数)とし、辺を同時に必要とされるレジスタ同士を結ぶように配した干渉グラフを構築する。このグラフがk色で彩色可能なら、k個のレジスタに割り付け可能である。
※この「レジスタ割り付け」の解説は、「グラフ彩色」の解説の一部です。
「レジスタ割り付け」を含む「グラフ彩色」の記事については、「グラフ彩色」の概要を参照ください。
- レジスタ割り付けのページへのリンク