[发明专利]针对C*core处理器寄存器分配的编译方法及编译器有效
申请号: | 201210243250.9 | 申请日: | 2012-07-13 |
公开(公告)号: | CN102831005A | 公开(公告)日: | 2012-12-19 |
发明(设计)人: | 兰光洋;王忠海;肖佐楠;郑茳 | 申请(专利权)人: | 天津国芯科技有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 天津滨海科纬知识产权代理有限公司 12211 | 代理人: | 杨慧玲 |
地址: | 300457 天津市滨海新区开发*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 core 处理器 寄存器 分配 编译 方法 编译器 | ||
1.一种针对C*core处理器的寄存器分配的编译方法,包括前端处理生成的中间代码,其特征在于:该方法还包括:
第一步骤:判断源程序是否存在函数调用;
第二步骤:如果存在函数调用,则检测程序中的函数调用所用的参数,并得出参数的数据;如果没有,则直接生成最终汇编语言;
第三步骤:根据第二步骤的结果和寄存器的个数进行初次分配,如果参数与变量的数量总数不大于寄存器的个数,则寄存器分配结束,如果参数与变量的数量总数大于寄存器的个数,则转入下一步骤;
第四步骤:根据第二步骤所检测的结果,按照非同一生命期的相同类型的变量可分配在一个寄存器的规则对第三步骤初次分配的结果进行优化;
第五步骤:根据第四步骤的优化分配方法,如果寄存器的个数满足优化后变量的数目要求,则进入下一步骤;如果寄存器的个数仍不能满足优化后变量的数目要求,则根据第二步骤中所得到的函数中参数的数据来重新调整寄存器分配比例;
第六步骤:根据以上步骤生成最后的汇编指令。
2.根据权利要求1所述的编译方法,其特征在于:所述的第二步骤中检测程序中的函数调用所用的参数,并得出参数的数据,包括参数的类型、数量、生命期。
3.一种根据权利要求1所述的针对C*core处理器的寄存器分配的编译器,包括编译器前端,其特征在于:所述的编译器还包括用于判断是否有函数调用操作的函数调用检测单元以及用于对函数调用进行分析,提取参数传递信息的函数传参处理单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津国芯科技有限公司,未经天津国芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210243250.9/1.html,转载请声明来源钻瓜专利网。