[发明专利]用于寄存器分配的系统和方法有效
申请号: | 201480056891.0 | 申请日: | 2014-09-12 |
公开(公告)号: | CN105637474B | 公开(公告)日: | 2019-03-22 |
发明(设计)人: | 简宁胜;张韫赟;高丽萍;黄海涛;齐歆瑜 | 申请(专利权)人: | 马维尔国际贸易有限公司 |
主分类号: | G06F7/38 | 分类号: | G06F7/38 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅;辛鸣 |
地址: | 巴巴多斯*** | 国省代码: | 巴巴多斯;BB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 提供了用于寄存器分配的系统和方法。确定与执行循环的分支关联的原始代码块和目标代码块。检测多个物理寄存器向与原始代码块关联的一个或者多个原始变量的原始分配。确定多个物理寄存器向与目标代码块关联的一个或者多个目标变量的目标分配。至少部分基于原始分配和目标分配来从多个物理寄存器选择一个或者多个暂时寄存器。使用选择的暂时寄存器将原始分配改变成目标分配。具体地,生成用于使用选择的暂时寄存器将原始分配改变成目标分配的一个或者多个指令。使用一个或者多个处理器来执行指令。 | ||
搜索关键词: | 用于 寄存器 分配 系统 方法 | ||
【主权项】:
1.一种用于寄存器分配的方法,所述方法包括:确定与执行循环的分支关联的原始代码块和目标代码块,用于由处理器设备执行,所述处理器设备包括一个或多个处理器并且包括物理处理器寄存器,所述物理处理器寄存器包括第一寄存器和第二寄存器;检测所述寄存器向与所述原始代码块关联的变量的原始分配,所述原始代码块已经由所述处理器设备执行;确定所述寄存器向与所述目标代码块关联的变量的目标分配,所述目标代码块将由所述处理器设备执行;至少部分基于符合以下各项中的至少一项的所述寄存器,从所述处理器寄存器中选择寄存器作为暂时寄存器:(i)所述寄存器在所述原始分配中不被分配给变量;以及(ii)所述寄存器在所述目标分配中不被分配给变量,其中选择寄存器作为所述暂时寄存器包括:维持第一数据结构,所述第一数据结构针对每个寄存器具有一位;响应于对应的所述寄存器在所述目标分配中被分配给变量,而所述变量在所述原始分配中被分配给不同的寄存器,将每个第一数据结构位设置为第一状态,否则将所述第一数据结构位设置为第二状态;维持第二数据结构,所述第二数据结构针对每个寄存器具有一位;响应于对应的所述寄存器在所述原始分配中被分配给变量,而所述变量在所述目标分配中被分配给不同的寄存器,将每个第二数据结构位设置为所述第一状态,否则将所述第二数据结构位设置为所述第二状态;维持第三数据结构,所述第三数据结构针对每个寄存器具有一位;将每个第三数据结构位确定为对应的所述第一数据结构位和对应的所述第二数据结构位的布尔逻辑函数;其中选择寄存器作为暂时寄存器是基于对应的所述第三数据结构位的所述状态;使用包括以下的过程来由所述处理器设备从所述原始分配向所述目标分配改变:响应于确定第一变量在所述原始分配中被分配给所述第一寄存器并且在所述目标分配中被分配给所述第二寄存器,并且确定所述第二寄存器正存储有第二变量的值,从所述第一寄存器向所述暂时寄存器移动所述第一变量的值,从所述第二寄存器移动所述第二变量的值,以释放所述第二寄存器,以及从所述暂时寄存器向所述第二寄存器移动所述第一变量的值,使得所述第一变量在被暂时存储在所述暂时寄存器中时不被用作执行操作数;以及执行所述目标代码块。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于马维尔国际贸易有限公司,未经马维尔国际贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201480056891.0/,转载请声明来源钻瓜专利网。