[发明专利]一种解决多寄存器组冲突的方法有效
申请号: | 200510077171.5 | 申请日: | 2005-06-16 |
公开(公告)号: | CN1881175A | 公开(公告)日: | 2006-12-20 |
发明(设计)人: | 周峰;吴承勇;张兆庆 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F15/78 |
代理公司: | 北京泛华伟业知识产权代理有限公司 | 代理人: | 高存秀 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种解决多寄存器组冲突的方法,包括:1)建立寄存器冲突图,图中的每个节点都代表一个虚拟寄存器,各个节点有优先级;两个节点之间存在一条边表示存在寄存器组冲突;2)对节点,按照优先级从高到低的顺序开始分配寄存器组;3)对一个节点,计算被分配到各个寄存器组的代价;4)将代价与阀值做比较,如果所有代价均大于阀值,则对该节点做区间分割,否则执行下一步;5)如果节点分配到一个寄存器组的代价小于其它寄存器组,则指定该寄存器组给节点;6)寄存器冲突图中的所有节点分配完寄存器组后,将结果与寄存器冲突图做比较,如果存在寄存器组冲突,则在所有以这两个节点所对应的虚拟寄存器为源操作数的指令前插入拷贝指令。 | ||
搜索关键词: | 一种 解决 寄存器 冲突 方法 | ||
【主权项】:
1、一种解决多寄存器组冲突的方法,包括:1)根据程序中的指令和双源操作数规则建立寄存器冲突图,寄存器冲突图中的每个节点都代表一个虚拟寄存器,各个节点有优先级;两个节点之间存在一条边表示它们存在寄存器组冲突;2)对由步骤1)得到的寄存器冲突图中的所有节点,按照优先级从高到低的顺序开始分配寄存器组;3)对寄存器冲突图中的一个节点,分别计算该节点被分配到各个寄存器组的代价;4)将步骤3)计算得到的代价与一个预先设定的阀值做比较,如果所有的代价均大于阀值,则对该节点做区间分割,否则执行下一步;5)如果节点分配到一个寄存器组的代价小于其它寄存器组,则指定该寄存器组给节点;6)对寄存器冲突图中的所有节点分配完寄存器组后,将节点指定寄存器组的结果与寄存器冲突图做比较,如果两个节点在寄存器冲突图上是相连的并且被指定到了同一个寄存器组,则它们存在寄存器组冲突,如果节点之间存在寄存器组冲突,则在所有以这两个节点所对应的虚拟寄存器为源操作数的指令前插入拷贝指令。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200510077171.5/,转载请声明来源钻瓜专利网。
- 上一篇:一种锡基轴承合金及其制备方法
- 下一篇:一种根据负载状况选择服务节点的方法