发明名称 针对C*core处理器寄存器分配的编译方法及编译器
摘要 本发明提供一种针对C*core处理器的优化寄存器分配的编译方法,包括对包括对前端生成的中间代码的进一步处理,并根据函数中变量的类型、数量及生命期特征,对寄存器的分配进行优化。并提供了一种针对此种方法的编译器,由于采用上述技术方案,使得在编译过程中进行寄存器分配时可尽量的减少抛出行为,可使处理器减少压栈出栈的次数,提高处理器执行代码的效率。
申请公布号 CN102831005A 申请公布日期 2012.12.19
申请号 CN201210243250.9 申请日期 2012.07.13
申请人 天津国芯科技有限公司 发明人 兰光洋;王忠海;肖佐楠;郑茳
分类号 G06F9/45(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 天津滨海科纬知识产权代理有限公司 12211 代理人 杨慧玲
主权项 一种针对C*core处理器的寄存器分配的编译方法,包括前端处理生成的中间代码,其特征在于:该方法还包括:第一步骤:判断源程序是否存在函数调用;第二步骤:如果存在函数调用,则检测程序中的函数调用所用的参数,并得出参数的数据;如果没有,则直接生成最终汇编语言;第三步骤:根据第二步骤的结果和寄存器的个数进行初次分配,如果参数与变量的数量总数不大于寄存器的个数,则寄存器分配结束,如果参数与变量的数量总数大于寄存器的个数,则转入下一步骤;第四步骤:根据第二步骤所检测的结果,按照非同一生命期的相同类型的变量可分配在一个寄存器的规则对第三步骤初次分配的结果进行优化;第五步骤:根据第四步骤的优化分配方法,如果寄存器的个数满足优化后变量的数目要求,则进入下一步骤;如果寄存器的个数仍不能满足优化后变量的数目要求,则根据第二步骤中所得到的函数中参数的数据来重新调整寄存器分配比例;第六步骤:根据以上步骤生成最后的汇编指令。
地址 300457 天津市滨海新区开发区第四大街80号天大科技园软件大厦南楼309室