【技术实现步骤摘要】
函数的参数优化方法、编译器、芯片及电子设备
本申请涉及计算机
,特别涉及一种函数的参数优化方法、编译器、芯片及电子设备。
技术介绍
计算机系统程序的性能取决于两个方面,一个是计算机硬件的性能,一个是运行在计算机硬件上的软件自身的性能。软件自身的性能则包括软件的执行效率以及软件的代码大小。编译器则负责对软件的执行效率以及软件的代码大小进行优化,以期望尽可能地提高编译后的软件的性能。专利技术人发现现有技术至少存在以下问题:按照现有的函数调用规范,编译器在对软件代码进行优化时,如果函数的参数的长度大于两个参数寄存器长度,则直接使用栈对该参数进行传递,栈传递参数的速度较慢,影响软件代码的执行效率。
技术实现思路
本申请部分实施例的目的在于提供一种函数的参数优化方法、编译器、芯片及电子设备,尽可能的利用参数寄存器来传递被调用函数中需要使用栈传递的聚合量参数,能够充分利用寄存器资源;同时,相对于现有技术中用栈传递的聚合量参数,本专利技术可以用参数寄存器传递优化后的聚合量参数中的标量部分,速度较快,从而提 ...
【技术保护点】
1.一种函数的参数优化方法,其特征在于,包括:/n对待编译代码中的被调用函数以及所述被调用函数的调用函数分别进行寄存器压力评估,得到所述被调用函数的寄存器压力余量以及所述调用函数的寄存器压力余量;/n获取用于传递所述被调用函数的聚合量参数的参数寄存器的余量;/n将所述被调用函数的寄存器压力余量、所述调用函数的寄存器压力余量以及所述参数寄存器的余量中的最小值,作为所述被调用函数的寄存器余量;/n对于每个需要使用栈传递的所述聚合量参数,根据所述聚合量参数的长度和所述寄存器余量,对所述聚合量参数进行优化以得到优化后的聚合物参数,其中至少部分所述优化后的聚合量参数为标量。/n
【技术特征摘要】
1.一种函数的参数优化方法,其特征在于,包括:
对待编译代码中的被调用函数以及所述被调用函数的调用函数分别进行寄存器压力评估,得到所述被调用函数的寄存器压力余量以及所述调用函数的寄存器压力余量;
获取用于传递所述被调用函数的聚合量参数的参数寄存器的余量;
将所述被调用函数的寄存器压力余量、所述调用函数的寄存器压力余量以及所述参数寄存器的余量中的最小值,作为所述被调用函数的寄存器余量;
对于每个需要使用栈传递的所述聚合量参数,根据所述聚合量参数的长度和所述寄存器余量,对所述聚合量参数进行优化以得到优化后的聚合物参数,其中至少部分所述优化后的聚合量参数为标量。
2.如权利要求1所述的函数的参数优化方法,其特征在于,所述对待编译代码中被调用函数以及所述被调用函数的调用函数分别进行寄存器压力评估,得到所述被调用函数以及所述调用函数的寄存器压力余量,包括:
对于每个函数,获取保存所述函数中的数据需要消耗寄存器的数量,所述数据包括所述函数的变量、所述函数的目标参数与所述函数的返回值;其中所述函数为所述被调用函数或所述调用函数,所述目标参数为所述函数中需要使用所述参数寄存器传递的参数;
根据保存所述数据需要消耗寄存器的数量,得到所述函数的寄存器压力余量。
3.如权利要求2所述的函数的参数优化方法,其特征在于,所述变量包括所述函数中的静态单赋值形式变量与所述函数中的局部变量。
4.如权利要求3所述的函数的参数优化方法,其特征在于,所述变量包括所述静态单赋值形式变量中去除保存到栈的所述静态单赋值形式变量后剩余的部分与所述目标局部变量中去除保存到栈的所述目标局部变量后剩余的部分。
5.如权利要求2所述的函数的参数优化方法,其特征在于,所述根据保存所述数据需要消耗寄存器的数量,得到所述函数的寄存器压力余量,具体为:
将保存所述数据需要消耗寄存器的数量代入公式...
【专利技术属性】
技术研发人员:曹岚健,朱辉,
申请(专利权)人:深圳市汇顶科技股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。