[发明专利]动态二进制翻译系统中可重定向的寄存器分配方法有效
| 申请号: | 200910049870.7 | 申请日: | 2009-04-23 |
| 公开(公告)号: | CN101539867A | 公开(公告)日: | 2009-09-23 |
| 发明(设计)人: | 管海兵;梁阿磊;蔡战举;姜玲燕;孙廷韬 | 申请(专利权)人: | 上海交通大学 |
| 主分类号: | G06F9/45 | 分类号: | G06F9/45 |
| 代理公司: | 上海交达专利事务所 | 代理人: | 毛翠莹 |
| 地址: | 200240*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明涉及一种动态二进制翻译系统中可重定向的寄存器分配方法,基于基本块内变量的next-use信息实施替换策略,根据不同的目标平台,自适应的启用不同的寄存器分配器,进行目标平台寄存器的分配。根据动态二进制翻译领域的不同需要对基本块中的变量进行寄存器的分配,分为普通分配、强制要求特定寄存器分配、强制要求非特定寄存器分配。本发明具有可重定向性,结合了变量的使用信息特性,具有分配效果好、分配开销低的特点,对于动态二进制翻译领域有更好的适用性,对于多源多目标的二进制翻译器尤其适用。 | ||
| 搜索关键词: | 动态 二进制 翻译 系统 中可重 定向 寄存器 分配 方法 | ||
【主权项】:
1、一种动态二进制翻译系统中可重定向的寄存器分配方法,其特征在于包括如下步骤:1)初始化寄存器分配器的目标平台,包括寄存器数目,寄存器之间的数据移动机器指令,内存到寄存器的数据移动机器指令以及寄存器到内存的数据移动机器指令;2)初始化块寄存器分配器内部数据结构,包括初始化寄存器状态的数据结构数据,所有寄存器状态设为空闲,所有目标平台寄存器所匹配的变量设为空,所有匹配的变量所在指令设为空;初始化基本块所有变量所在位置为内存;清空存放基本块变量next-use信息的所有队列;3)从基本块头部到尾部扫描收集next-use信息,依次把基本块内变量的next-use信息分别放进变量各自的队列;4)根据不同翻译需要对基本块中的变量进行寄存器的分配,分为普通分配、强制要求特定寄存器分配、强制要求非特定寄存器分配;5)对于普通分配,依次查看寄存器的状态,如果有寄存器已被分配给该变量,则继续保持这种分配;否则再依次查看寄存器的状态,若有空闲寄存器或者有寄存器对应变量失去活性,且变量在后续指令是被定义的,则把该空闲寄存器或者对应变量失去活性的寄存器分配给该变量;若有空闲寄存器或者有寄存器对应变量失去活性,且变量在后续指令是被使用的,则把该空闲寄存器或者对应变量失去活性的寄存器分配给该变量,并把该变量对应的内存的数据装载到该空闲寄存器或者对应变量失去活性的寄存器;若无空闲寄存器且没有寄存器对应变量失去活性,且变量在后续指令是被定义的,则先找出next-use信息最大值的变量所对应的寄存器,如果next-use信息最大值的变量后续会被使用,则把该寄存器的值保存到对应变量的内存,然后把该寄存器分配给该变量,如果next-use信息最大值的变量后续不会被使用,则直接把该寄存器分配给该变量;若无空闲寄存器且没有寄存器对应变量失去活性,且变量在后续指令是被使用的,则先找出next-use信息最大值的变量所对应的寄存器,如果next-use信息最大值的变量后续会被使用,则把该寄存器的值保存到对应变量的内存,然后把该寄存器分配给该变量,并把该变量对应的内存的数据装载到该寄存器,如果next-use信息最大值的变量后续不会被使用,则直接把该寄存器分配给该变量,并把该变量对应的内存的数据装载到该寄存器;6)对于强制要求特定寄存器分配,如果强制要求寄存器已被分配的变量恰好是该变量,则继续保持这种分配;如果强制要求寄存器被分配的变量不是该变量,且被分配的变量存在活性,则把强制要求特定寄存器的值保存到对应变量的内存,完成数据保护处理,把该强制要求特定寄存器分配给该变量,如果该变量后续指令是被使用的并且该变量在内存里,把该变量对应的内存的数据装载到强制要求特定寄存器,如果该变量后续指令是被使用的并且该变量在寄存器里,把该变量对应的寄存器的数据装载到强制要求特定寄存器;如果强制要求寄存器被分配的变量不是该变量,且被分配的变量失去活性,则把该强制要求特定寄存器分配给该变量,如果该变量后续指令是被使用的并且该变量在内存里,把该变量对应的内存的数据装载到强制要求特定寄存器,如果该变量后续指令是被使用的并且该变量在寄存器里,把该变量对应的寄存器的数据装载到强制要求特定寄存器;7)对于强制要求非特定寄存器分配,先保存强制要求非特定寄存器的状态到一个临时变量,如果强制要求非特定寄存器已经分配给了该变量,并且该变量存在活性,则保存强制要求非特定寄存器到该变量对应的内存,更改临时变量的状态为空闲,更改强制要求非特定寄存器的状态为受保护的,然后对该变量进行普通分配,将受保护的强制要求非特定寄存器改回临时变量的值,并以普通分配的结果作为分配结果;如果强制要求非特定寄存器已经分配给了该变量,并且该变量失去活性,则更改临时变量的状态为空闲,更改强制要求非特定寄存器的状态为受保护的,然后对该变量进行普通分配,将受保护的强制要求非特定寄存器改回临时变量的值,并以普通分配的结果作为分配结果;如果强制要求非特定寄存器没有分配给该变量,更改强制要求非特定寄存器的状态为受保护的,然后对该变量进行普通分配,将受保护的强制要求非特定寄存器改回临时变量的值,并以普通分配的结果作为分配结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910049870.7/,转载请声明来源钻瓜专利网。
- 上一篇:数字出版物的多维浏览方法及系统
- 下一篇:风扇系统及其信号输出方法





