首页> 外文期刊>Journal of systems architecture >Computing the correct Increment of Induction Pointers with application to loop unrolling
【24h】

Computing the correct Increment of Induction Pointers with application to loop unrolling

机译:应用循环展开计算正确的归纳指针增量

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

摘要

Induction pointers (IPs) are the analogue of induction variables (IVs), namely, pointers that are advanced by a fixed amount every iteration of a loop (e.g., p=p→next→next). Although IPs have been considered in previous works, there is no algorithm to properly compute the correct amount of pointer jumping (AOPJ) by which IPs should be advanced if loop unrolling is to be applied to loops of the form while(p){...p=p→next→next;}. The main difficulty in computing the correct AOPJ of IPs is that pointers can be used to modify the data structure that is traversed by the loop (e.g., adding/removing/by-passing elements). Consequently, a simple advancement p=p→next in a loop does not necessarily mean that p is advanced by one element every iteration. This situation contrasts with the use of IVs, which cannot change the structure of arrays that are traversed by loops. Hence, if i is an IV, A[i+1] will always mean the next element of A[], while if p=p→next; is preceded by p→next=q; it may be advanced by k>1 elements at every iteration. The proposed method for computing the correct AOPJ of IPs and an accompanying loop unrolling technique were implemented in the SUIF compiler for C programs. Our experiments with automatic unrolling of loops with pointers yielded an improvement of 3-5% for a set of SPEC2000 programs. Experiments with a VLIW IA-64 machine also verified the usefulness of this approach for embedded systems
机译:归纳指针(IP)是归纳变量(IV)的类似物,即在循环的每次迭代中前进固定量的指针(例如p = p→next→next)。尽管在先前的工作中已经考虑了IP,但是如果要将循环展开应用于while(p){。形式的循环,则没有算法可以正确计算出正确的指针跳转(AOPJ)量,通过该正确量的IP应该被提前。 .p = p→下一步→下一步;}。计算正确IP的AOPJ的主要困难是指针可用于修改循环遍历的数据结构(例如,添加/删除/绕过元素)。因此,循环中的简单推进p = p→next不一定意味着每次迭代将p推进一个元素。这种情况与IV的使用形成对比,后者无法更改循环遍历的数组的结构。因此,如果i是IV,则A [i + 1]始终表示A []的下一个元素,而如果p = p→next;前面有p→next = q;在每次迭代中,可以将k> 1个元素提前。在用于C程序的SUIF编译器中实现了所提出的用于计算IP正确AOPJ的方法以及相应的循环展开技术。我们对带有指针的循环进行自动展开的实验对于一组SPEC2000程序产生了3-5%的改善。使用VLIW IA-64机器进行的实验也验证了这种方法对嵌入式系统的有用性

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号