我一直在阅读本地优化编译器技术,但一直不知道它们是如何实现的。这个想法是优化器每次都会查看代码的“窗口”,并以某种方式检测模式并用更优化的版本替换它们。
我的问题是,如何发现这些模式?(假设您的平台是一个为组装计算机输出汇编代码的 VM,例如 Schocken's Hack)。
人们是否真的手动检查代码(使用控制流图或 DAG 或其他),然后收集所有识别的模式并将它们编码到优化器中?或者有没有自动的方法。
例如,您在分析器中输入要优化的代码,它会喷出所说的模式。如果是这样,一个人如何开始写一个?