检索规则说明:AND代表“并且”;OR代表“或者”;NOT代表“不包含”;(注意必须大写,运算符两边需空一格)
检 索 范 例 :范例一: (K=图书馆学 OR K=情报学) AND A=范并思 范例二:J=计算机应用与软件 AND (U=C++ OR U=Basic) NOT M=Visual
机构地区:[1]中科院计算技术研究所系统结构室先进编译组,北京100080
出 处:《计算机科学》2004年第3期158-160,共3页Computer Science
基 金:国家自然科学基金(69933020);863项目(2001AA111061);Intel公司的资助
摘 要:寄存器械在减少程序调用时的内存访问上发挥了重要作用。但是,并非任何时候栈寄存器的使用都是没有代价的,有时栈溢出的代价甚至非常高。为了解决这个问题,本文提出了一种解决自递归函数中大量栈寄存器的使用导致过高栈溢出代价的算法,对寄存器分配中的简化过程进行了改进,并提出了一种减轻寄存器压力的优化方法。本算法在开放源码编译器ORC(Open Research Compiler是IA-64开放源码编译器的名称)上得到了实现。在IA-64上运行的实验结果证明,该算法对于执行频率很高,而且寄存器压力大的自递归函数有很明显的优化效果。Stack register plays an important role in reducing memory access at call sites in procedures. But stack registers are not cost free, they have very high cost when overflow happens. In order to solve this problem, this paper proposes an effective algorithm to manage excessive usage of stack registers in self recursive functions, do modification to traditional simplification, and find a optimization method to alleviate register pressure. This algorithm is implemented in ORC2 compiler. Experiments show that this algorithm is very useful in performance improvement of programs having self-recursive function with high execution frequency and great register pressure.
分 类 号:TP332.11[自动化与计算机技术—计算机系统结构]
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在链接到云南高校图书馆文献保障联盟下载...
云南高校图书馆联盟文献共享服务平台 版权所有©
您的IP:216.73.216.62