使用声明式机器描述自动生成后端

乔·迪亚斯诺曼·拉姆齐

尽管多年来一直致力于可重定向编译器的研究,优化编译器的可靠后端仍然需要很多艰苦的工作。此外,后端的关键组件是指令选择器-必须由两个领域的专家编写编译器的中间代码和目标机器的指令集。生成指令选择器声明性机器描述我们已经使它变得不必要了一个人既是编译器专家又是机器专家,以及(b)创建优化后端比以前更容易。

我们的成就取决于两项新成果。第一,从中查找映射中间代码到机器代码是一个无法确定的问题。第二,使用启发式搜索,我们可以在中找到具有实际意义的机器的映射最多几分钟的CPU时间。

我们最重要的新想法是,启发式搜索应该受代数定律控制。法律不仅用于显示指令序列何时执行部分中间代码,但也作为限制搜索:我们删除一系列指令太长或计算结果太复杂,但当太多的推理将需要显示结果计算可能有用。

我们搜索的一个重要不变量是我们考虑的只有计算我们知道可以完全由机器指令实现。这个不变量使得我们的算法比以前的搜索简单得多算法,从目标计算开始,其实现由机器指令尚不清楚。

全文

该文件可作为美国信函PostScript(351K),美国信函PDF(217K),美国文字母TeX DVI(122K),