|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 割 : [わり] 1. (n,n-suf) rate 2. ratio 3. proportion 4. percentage 5. profit 6. assignment 7. 10% 8. unit of ten percent ・ 割り : [わり] 1. (n,n-suf) rate 2. ratio 3. proportion 4. percentage 5. profit 6. assignment 7. 10% 8. unit of ten percent ・ 割り付け : [わりつけ] 【名詞】 1. allotment 2. assignment 3. allocation 4. distribution 5. layout 6. editing ・ 付 : [ふ] 1. (n,vs) giving to 2. submitting to 3. refer to 4. affix 5. append ・ 付け : [づけ] 1. (n-suf,pref,suf) dated 2. date 3. fixed 4. external
レジスタ割り付け(レジスタわりつけ、)は、プログラム内の多数の変数を少数のCPUレジスタに多重化するコンパイラ最適化技法のひとつである。その目標は、プログラムの実行速度を最大化すべく、なるべく多くのオペランドをレジスタに保持するようにすることである。レジスタ割り付けは基本的なブロックについて行う場合(ローカルレジスタ割り付け)と関数やプロシージャ全体について行う場合(グローバルレジスタ割り付け)がある。レジスタ割り当てとも呼ぶ。 プログラムは、多数の様々なデータを処理することが多い。しかし、CPUの多くはデータを保持するのに使えるレジスタ数は限られている。機械語のオペランドとしてメモリを指定できる場合でも、なるべくレジスタを使った方が高速化される。従って、処理に必要なデータを RAMとレジスタの間で入れ替えてやる必要がある。この操作を spill(スピル、あふれ)と呼ぶ。 レジスタの spill は、マシンが持っているレジスタ数以上の変数が同時に必要とされる場合に発生する。一般にメモリはレジスタよりも遅いため、spill にはコストがかかる。 == 目標 == レジスタ割り付けはNP完全問題である。一般にプログラム内の変数の個数は、プロセッサ上で利用可能なレジスタ数より多い。従って一部の変数の内容は適当なメモリ位置に spill(セーブ)される必要がある。spill のコストを最小化するには、最も利用頻度の低い変数から spill するようにすればよい。しかし、各変数の利用頻度をコンパイル時に知るのは容易ではない。さらに、ハードウェアやオペレーティングシステムがレジスタの利用方法を制限することもある。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「レジスタ割り付け」の詳細全文を読む スポンサード リンク
|