【24h】

Minimizing register usage penalty at procedure calls

机译:减少过程调用中的寄存器使用损失

获取原文

摘要

Inter-procedural register allocation can minimize the register usage penalty at procedure calls by reducing the saving and restoring of registers at procedure boundaries. A one-pass inter-procedural register allocation scheme based on processing the procedures in a depth-first traversal of the call graph is presented. This scheme can be overlaid on top of intra-procedural register allocation via a simple extension to the priority-based coloring algorithm. Using two different usage conventions for the registers, the scheme can distribute register saves/restores throughout the call graph even in the presence of recursion, indirect calls or separate compilation. A natural and efficient way to pass parameters emerges from this scheme. A separate technique uses data flow analysis to optimize the placement of the save/restore code for registers within individual procedures. The techniques described have been implemented in a production compiler suite. Measurements of the effects of these techniques on a set of practical programs are presented and the results analysed.
机译:过程间寄存器分配可以通过减少过程边界处寄存器的保存和恢复来最大程度地减少过程调用时的寄存器使用损失。提出了一种基于对调用图的深度优先遍历的处理过程的单程过程间寄存器分配方案。通过对基于优先级的着色算法的简单扩展,该方案可以覆盖在过程内寄存器分配的顶部。使用两种不同的寄存器使用约定,即使在存在递归,间接调用或单独编译的情况下,该方案也可以在整个调用图中分配寄存器保存/恢复。这种方案提出了一种自然而有效的传递参数的方法。一种单独的技术使用数据流分析来优化各个过程中寄存器的保存/恢复代码的放置。所描述的技术已在生产编译器套件中实现。提出了对这些技术对一组实际程序的影响的度量,并对结果进行了分析。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号