アーキテクチャ依存/非依存

これまでJITコンパイラを書いてきた僅かな経験から言うと、コンパイラで一番面倒くさいのは最適化の実装ではなく、アーキテクチャ依存部分と非依存部分を切り分ける作業であり、それと表裏一体の中間言語の設計である。アーキテクチャ依存部分ではSPARCべったりなコードを書いてもいいので、「これほど楽チンなことはない」と感じる。複数のアーキテクチャに対応している最適化コンパイラと、特定のアーキテクチャのみサポートしている最適化コンパイラを同列に論じるべきではない、とさえ思う。