[发明专利]针对C*core处理器寄存器分配的编译方法及编译器有效

专利信息
申请号: 201210243250.9 申请日: 2012-07-13
公开(公告)号: CN102831005A 公开(公告)日: 2012-12-19
发明(设计)人: 兰光洋;王忠海;肖佐楠;郑茳 申请(专利权)人: 天津国芯科技有限公司
主分类号: G06F9/45 分类号: G06F9/45
代理公司: 天津滨海科纬知识产权代理有限公司 12211 代理人: 杨慧玲
地址: 300457 天津市滨海新区开发*** 国省代码: 天津;12
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 针对 core 处理器 寄存器 分配 编译 方法 编译器
【说明书】:

技术领域

发明属于计算机领域,涉及嵌入式系统,尤其是涉及一种针对C*core处理器的优化寄存器分配的编译方法及编译器。

背景技术

寄存器分配,是通过将程序变量尽可能地分配到寄存器,从而提高程序执行速度的一种方法。寄存器是编译器优化中最为重要的问题之一(好的寄存器分配能够提高程序执行速度超过250%);也是编译器理论中最热点的研究领域之一。

寄存器是位于处理器(CPU)内部的少量的高速存储单元。寄存器与内存有很大的不同:首先,寄存器数量很少很少,一个寄存器可以用几个比特直接定位,这样就可以在指令中直接指定某一个寄存器;而内存空间很大,内存的定位一般是通过间接的“寻址方式”来实现的,在这个过程中可能包含一个或多个对寄存器的使用;其次,寄存器访问速度很快,在一个周期内,处理器可以分别读两个寄存器,同时写第三个寄存器;而内存的访问则要慢些,一次访问就需要几个周期。正是因为寄存器的个数受限和它的高速度,它们成为大多数计算机体系结构中的关键资源之一。这也使得寄存器分配的方法变得更加重要。一种比较简单的情况,计算机所要执行的每条指令的操作数要放在寄存器里,在复杂表达式的计算过程中产生的中间结果也要在寄存器里;稍微复杂的情况是编译器会把经常使用的变量放在寄存器里,避免反复地存取;而如果是带有优化功能的编译器,它会把编译过程中的公共子表达式消除或循环变量更新以后的值,放入寄存器中。可靠的分配器必要能很好地对付复杂的程序和稀少的寄存器的情况,而实现好的寄存器分配总是很困难的,即使是最简单的实现也会因为机器的特殊细节变得复杂。

图着色(graph coloring)方法是解决寄存器分配问题最常用的方法。利用相交图(interference graph)来表示程序变量的生命期是否相交,将寄存器分配给变量的问题,可以近似地看成是给相交图着色:相交图中,相交的节点不能着同一颜色;每一种颜色对应一个寄存器。Chaitin等人最早提出了基于图着色的寄存器分配方法其着色思路采用了Kempe的着色方法,即,任意一个邻居节点数目少于k的节点,都能够被k着色。但是,寄存器分配不仅仅是图着色的问题。当寄存器数目不足以分配某些变量时,就必须将这些变量溢出到内存中,该过程称为抛出(spill)。要想提高编译器编译出来的代码的效率,就必须减少抛出的发生。

发明内容

为解决上述技术问题,本发明采用的技术方案是:一针对C*core处理器的寄存器分配的编译方法,包括对前端生成的中间代码的进一步处理,其特征在于:该方法还包括:

第一步骤:判断源程序是否存在函数调用;

第二步骤:如果存在函数调用,则检测程序中的函数调用所用的参数,并得出参数的数据;如果没有,则直接生成最终汇编语言;

第三步骤:根据第二步骤的结果和寄存器的个数进行初次分配,如果参数与变量的数量总数不大于寄存器的个数,则寄存器分配结束,如果参数与变量的数量总数大于寄存器的个数,则转入下一步骤;

第四步骤:根据第二步骤所检测的结果,按照非同一生命期的相同类型的变量可分配在一个寄存器的规则对第三步骤初次分配的结果进行优化;

第五步骤:根据第四步骤的优化分配方法,如果寄存器的个数满足优化后变量的数目要求,则进入下一步骤;如果寄存器的个数仍不能满足优化后变量的数目要求,则根据第二步骤中所得到的函数中参数的数据来重新调整寄存器分配比例;

第六步骤:根据以上步骤生成最后的汇编指令。

进一步的,所述的第二步骤中检测程序中的函数调用所用的参数,并得出参数的数据是指包括参数的类型、数量、生命期。

更进一步的,一种所述的针对C*core处理器的寄存器分配的编译器,包括编译器前端,其特征在于:所述的编译器还包括用于判断是否有函数调用操作的函数调用检测单元和用于对函数调用进行分析,提取参数传递信息的函数传参处理单元。

由于采用上述技术方案,使得在编译过程中进行寄存器分配时,尽量的减少抛出行为,这样即可使处理器减少压栈出栈的次数,又提高处理器执行代码的效率。

附图说明

图1是本发明的流程图;

图2是本发明一个实施例的变量图着色示意图;

图3是本发明一个实施例的变量周期图;

图4是本发明中对寄存器优化的流程图;

图5是本发明实例的两种编译方法结果对比图;

具体实施方式

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津国芯科技有限公司,未经天津国芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210243250.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top