基于模型变换器语义的寄存器分配
编程语言
2012-02-27 v1
摘要
寄存器分配长期以来被表述为图着色问题,用物理寄存器对冲突图进行着色。这种表述没有完全捕捉分配的目标,即最小化寄存器与内存之间的流量。线性扫描被提出作为图着色的替代方案,但本质上,它可以被视为图着色的贪心算法:不是按顶点的度数顺序着色,而是按它们在程序中出现的顺序着色。因此它几乎受到与图着色相同的约束。在本文中,我提出了一种基于模型变换器语义(MTS)和静态缓存替换(SCR)思想的寄存器分配新方法。模型变换器语义捕捉了寄存器和栈的语义。静态缓存替换放松了图着色和线性扫描所做的假设,直接旨在减少寄存器-内存流量。该方法探索了比图着色和线性扫描大得多的解空间,从而提供了更多的优化机会。它无缝地执行了生存期分割,这是图着色和线性扫描扩展中发现的一种优化。此外,它简化了编译器,其基于语义的方法为简化编译器的形式化验证提供了可能性。
引用
@article{arxiv.1202.5539,
title = {Register Allocation By Model Transformer Semantics},
author = {Yin Wang and R. Kent Dybvig},
journal= {arXiv preprint arXiv:1202.5539},
year = {2012}
}
备注
12 pages