【24h】

Register allocation by puzzle solving

机译:通过解谜注册分配

获取原文
获取原文并翻译 | 示例
       

摘要

We show that register allocation can be viewed as solving a collection of puzzles. We model the register file as a puzzle board and the program variables as puzzle pieces; pre-coloring and register aliasing fit in naturally. For architectures such as PowerPC, x86, and StrongARM, we can solve the puzzles in polynomial time, and we have augmented the puzzle solver with a simple heuristic for spilling. For SPEC CPU2000, the compilation time of our implementation is as fast as that of the extended version of linear scan used by LLVM, which is the JIT compiler in the openGL stack of Mac OS 10.5. Our implementation produces x86 code that is of similar quality to the code produced by the slower, state-of-the-art iterated register coalescing of George and Appel with the extensions proposed by Smith, Ramsey, and Holloway in 2004.
机译:我们证明寄存器分配可以看作是解决难题的集合。我们将寄存器文件建模为拼图板,将程序变量建模为拼图。预着色和套准混叠自然很适合。对于诸如PowerPC,x86和StrongARM之类的体系结构,我们可以在多项式时间内解决难题,并且我们通过一种简单的启发式方法扩展了难题求解器。对于SPEC CPU2000,我们实现的编译时间与LLVM使用的线性扫描扩展版本的编译时间一样快,后者是Mac OS 10.5的openGL堆栈中的JIT编译器。我们的实现产生的x86代码质量与由George和Appel进行的最慢,最先进的迭代寄存器合并以及Smith,Ramsey和Holloway在2004年提出的扩展所产生的代码质量相似。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号