可能ならば、コンパイラはこの種のリネーミングを行う工夫を行う。しかしレジスタ数はどのプロセッサでも少ないため、コンパイラ(ソフトウェア)でできることは限られる。 多くの高性能CPUは、公開されている仕様より多くの実レジスタを持っていて、レジスタをいわば仮想化し 命令が示すレジスタと実レジスタの対応をハードウェアで動的に切り替えて( レジスタ リネーミングして )いる。このようなリネーミングにより並列性を高めている。 ハザードとリネーミング[編集] 複数の命令がオペランドとしてある特定の場所を(入力、出力に関わらず)参照しているとき、それらの命令を本来のプログラムとは異なる順番で実行しようとすると、ハザードと呼ばれる三種類の問題が発生する。 リード・アフター・ライト (RAW) 書き込み後の読み込み レジスタやメモリから読み込む場合、その値はプログラムの順番上最も後にその場所に書き込まれた値