キャッシュや分岐予測が登場する前の時代には、特定の種類の最適化のために自己変更コードを作成することが奨励されていない場合でも、比較的一般的でした。Amiga などの 8 ビットから初期の 32 ビットまでの時代に、アセンブラーで記述されたゲームやデモでおそらく最も一般的でした。
当時のコンパイラが自己修正アセンブラまたはマシンコードを発行したかどうかはわかりません。
私が疑問に思っているのは、それを行う現在/最新のコンパイラがあるかどうかです。明らかに、キャッシュを備えた強力なプロセッサでは役に立たないか、難しすぎます。
しかし、組み込みシステムで使用されるような非常に多くの単純なプロセッサについてはどうでしょうか? 自己変更コードは、単純な/8ビット/組み込みプロセッサ向けの最新のコンパイラによって実行可能な最適化戦略と見なされていますか?
「 Is there any self-improving compiler around? 」という同様のタイトルの質問がありますが 、同じ主題に関するものではないことに注意してください。
コンパイルするコードを改善するコンパイラではなく、それ自体を改善するコンパイラについて話していることに注意してください。