[发明专利]一种含有配对寄存器的寄存器分配方法有效
申请号: | 200810240849.0 | 申请日: | 2008-12-26 |
公开(公告)号: | CN101770387A | 公开(公告)日: | 2010-07-07 |
发明(设计)人: | 周谦 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100102 北京市朝阳*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 含有 配对 寄存器 分配 方法 | ||
1.一种含有配对寄存器的寄存器分配方法,其特征包括以下步骤:在寄存器分配前的准备工 作中记录下配对的寄存器TN,在寄存器分配阶段优先对配对的寄存器TN进行分配,然 后再对普通的寄存器TN进行分配,并进行压栈处理;其中:
寄存器分配前的准备工作包括以下步骤:
(1)在指令选择过程中建立寄存器的配对关系,在多重配对的情况下,记录下寄存器TN 的多个配对TN号,在指令选择过程中,对主寄存器设定字节配对或者字配对的标志,并将 与之配对的寄存器号记录在主寄存器TN的数据结构里;
(2)计算寄存器的活跃区间,按照每个基本块计算变量的定值到达信息,记录每个变量 的第一个定值和最后一个引用的中间代码的位置标号;
(3)建立寄存器之间的干涉关系,如果两个寄存器TN的活跃区间冲突,则认为构成干 涉关系,这样的两个寄存器TN不放在同一个寄存器里;
(4)对于在寄存器分配阶段之前已经分配了寄存器TNi,假定分配了寄存器a,对与寄存 器TNi构成干涉关系的寄存器TNj,寄存器a不可用;
寄存器分配阶段,包括以下步骤:
(1)先对配对寄存器进行寄存器分配,如果主寄存器是字节寄存器,先分配主寄存器, 再分配配对寄存器;如果主寄存器是字寄存器,再分两种情况进行处理,如果配对寄存器是 字寄存器,则对该配对寄存器进行分配;如果配对寄存器是字节寄存器,则对该配对寄存器 进行分配;
(2)再对普通寄存器进行寄存器分配,如果寄存器是字寄存器,则对该寄存器进行分配;
如果寄存器是字节寄存器,则对该寄存器进行分配;
寄存器压栈处理策略步骤如下:
(1)遍历寄存器reg,对于当前要分配的字节寄存器TNi和寄存器reg,选择用于压栈的 字节寄存器TNj,并找出分配寄存器号同为reg的其他寄存器TN;
(2)找到后跳出遍历寄存器reg的循环,在用于压栈的字节寄存器TNj的第一次定值后面 插入压栈指令,其他定值后面插入store指令,在寄存器TNj的使用前面插入load指令;
(3)为了减少插入的load和store指令的个数,根据寄存器TNj的定义和使用关系,判 断是否需要插入load和store指令,仅在需要插入时再插入load和store指令,然后,对 于要分配的寄存器TNi,分配寄存器reg;
其中,TN是待分配寄存器的临时变量,TNi、TNj、reg为寄存器的编号。
2.根据权利要求1所述的一种含有配对寄存器的寄存器分配方法,其特征在于所述对字寄存 器分配方法,对于所有的字寄存器,按照从小到大的顺序排列,如果循环中当前的字寄存器 对当前寄存器TNi可用,则将该字寄存器分配给当前寄存器TNi,对于与当前寄存器TNi构 成干涉关系的寄存器TNj,记录使得该字寄存器对寄存器TNj不可用,如果没有字寄存器可 用,则进行压栈处理。
3.根据权利要求1所述的一种含有配对寄存器的寄存器分配方法,其特征在于所述对字节寄 存器分配方法,对于所有的字节寄存器,按照从小到大的顺序排列,如果循环中当前的字节 寄存器对当前寄存器TNi可用,则将该字节寄存器分配给当前寄存器TNi,对于与当前寄存 器TNi构成干涉关系的寄存器TNj,记录使得该字节寄存器对寄存器TNj不可用,如果没有 字节寄存器可用,则进行压栈处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810240849.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高效的LED发光模块
- 下一篇:平面天线以及应用该平面天线的RFID标签