在缓存和分支预测之前的日子里,如果不鼓励为某些类型的优化制作自修改代码,那是相对普遍的。在 8 位到早期 32 位(例如 Amiga)的时代,它可能最常见于用汇编程序编写的游戏和演示中。
我不确定当时是否有任何编译器发出自修改汇编程序或机器代码。
我想知道是否有任何当前/现代编译器可以做到。显然,在具有高速缓存的强大处理器上,这将是无用的或太难了。
但是对于嵌入式系统中使用的非常多的简单处理器呢?对于任何简单/8位/嵌入式处理器,任何现代编译器都认为自我修改代码是一种可行的优化策略吗?
有一个类似标题的问题,“周围有任何自我改进的编译器吗? ”,但请注意,它不是同一个主题:
请注意,我说的是一个自我改进的编译器——而不是一个改进它编译的代码的编译器。