最近のコンパイラには、出力するバイナリコードをより高速に実行できるようにする「最適化」機能が搭載されている。CPUやPCアーキテクチャがより複雑化している近年、コンパイラによる最適化はより注目を浴びるようになっている。 たとえば、現在のCPUはいわゆる「マシン語」のコマンド列をそのまま実行するのではなく、内部でより細かい単位に分解して実行する。このとき、CPUのリソースをより効率良く利用できるよう、場合によってはその順序の並び替えや、並列化が行われる。また、処理を行うデータがキャッシュされているかどうかによっても処理速度が大きく変化する。CPUクロックの向上により、CPUとメモリ間でデータをやりとりする時間についても大きなボトルネックとなるようになったからだ。 このようにCPUの動作が複雑になっている現在、「より速く実行できるコード」を生成するには、CPUの構造やその動作についての知識も必