[发明专利]一种使用空闲寄存器类作为快速溢出空间的优化方法有效
申请号: | 200810055607.4 | 申请日: | 2008-01-03 |
公开(公告)号: | CN101216774A | 公开(公告)日: | 2008-07-09 |
发明(设计)人: | 吕方;冯晓兵;杨扬;张超;王蕾 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁挥;陈振 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 使用 空闲 寄存器 作为 快速 溢出 空间 优化 方法 | ||
1.一种使用空闲寄存器类作为快速溢出空间的优化方法,其特征在于,包括下列步骤:
A.计算活跃区间的溢出代价并采用插桩工具以及静态分析汇编代码相结合的方式对应用程序中的溢出代价进行评估;
B.在原有寄存器分配中,为每个应用程序确定合适的访存延迟值;
C.使用静态分析的结果以及新的访存延迟建立代价模型,计算使用空闲寄存器类作为快速溢出空间可能带来的收益和代价,并根据计算结果选择是否使用所述使用空闲寄存器类作为快速溢出空间的优化方法。
2.根据权利要求1所述的方法,其特征在于,所述步骤A还进一步包括步骤:
A1.计算活跃区间的溢出代价;
A2.采用插桩工具以及静态分析汇编代码相结合的方式对应用程序中的溢出代价进行评估。
3.根据权利要求1或2所述的方法,其特征在于,所述活跃区间,是指在程序中,每个变量拥有的自己的活跃范围。
4.根据权利要求1或2所述的方法,其特征在于,所述活跃区间,是由活跃单元组成,活跃单元与候选变量活跃的基本块一一对应。
5.根据权利要求4所述的方法,其特征在于,所述基本块,是由一定数量的指令组成。
6.根据权利要求2所述的方法,其特征在于,所述计算活跃区间的溢出代价,包括下列步骤:
A11.计算每个活跃单元的溢出代价:
costi=(ld_cycle×ld_numexp_use+st_cycle×st_numlive_out)×freq;
A12.计算每个活跃区间的溢出代价:
7.根据权利要求2所述的方法,其特征在于,所述步骤A2还进一步包括步骤:
A21.采用gcc提供的插桩工具统计出每个应用程序的热函数;
A22.分析步骤A21统计出的热函数,计算热函数中的溢出代码代价,并将其作为整个应用程序的溢出代价进行分析。
8.根据权利要求7所述的方法,其特征在于,所述热函数的溢出代价,是由热函数中所有基本块的溢出代价组成。
9.根就权利要求8所述的方法,其特征在于,所述基本块的溢出代价,是由所述活跃区间溢出时在此活跃区间的活跃单元需要插入的保存和恢复访存指令组成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810055607.4/1.html,转载请声明来源钻瓜专利网。