SSA 形式下全局溢出问题的复杂性研究
数据结构与算法
2009-09-18 v1 计算复杂性
摘要
嵌入式处理器的编译可以是激进的(耗时的交叉编译)或即时的(嵌入式且通常是动态的)。动态编译中使用的启发式算法受到资源(特别是时间和内存)有限的严格约束。近期关于 SSA 形式的结果为嵌入式系统尤其是嵌入式编译的新型寄存器分配启发式算法的设计开辟了有前景的方向。特别是,基于树扫描并具有两个分离阶段(一个用于溢出,另一个用于着色/合并)的启发式算法似乎是设计内存友好、快速且具有竞争力的寄存器分配器的良好候选方案。然而,同样由于对功耗的副作用,最小化加载和存储开销(溢出问题)是一个重要议题。本文对 SSA 形式上下文中的“全局溢出”(spill everywhere)问题的复杂性进行了详尽研究。不幸的是,与我们最初的希望相反,我们提出的许多问题都导致了 NP 完全性结果。我们识别出了一些多项式时间可解的情形,但这些情形在 JIT 上下文中并不实用。尽管如此,它们可以为激进式分配器的设计提供简化公式的线索。
引用
@article{arxiv.0710.3642,
title = {On the Complexity of Spill Everywhere under SSA Form},
author = {Florent Bouchez and Alain Darte and Fabrice Rastello},
journal= {arXiv preprint arXiv:0710.3642},
year = {2009}
}
备注
10 pages