[发明专利]函数的参数优化方法、编译器、芯片及电子设备在审
申请号: | 201910487030.2 | 申请日: | 2019-06-05 |
公开(公告)号: | CN112052004A | 公开(公告)日: | 2020-12-08 |
发明(设计)人: | 曹岚健;朱辉 | 申请(专利权)人: | 深圳市汇顶科技股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 上海晨皓知识产权代理事务所(普通合伙) 31260 | 代理人: | 成丽杰 |
地址: | 518045 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数 参数 优化 方法 编译器 芯片 电子设备 | ||
本申请涉及测试技术领域,提供了一种函数的参数优化方法、编译器、芯片及电子设备。函数的参数优化方法,包括:将被调用函数的寄存器压力余量、调用函数的寄存器压力余量以及参数寄存器的余量中的最小值,作为被调用函数的寄存器余量;对于每个需要使用栈传递的聚合量参数,根据聚合量参数的长度和寄存器余量,对聚合量参数进行优化以得到优化后的聚合物参数,其中至少部分优化后的聚合量参数为标量。本申请实施例的技术方案,尽可能的利用参数寄存器来传递被调用函数中需要使用栈来传递的聚合量参数,能够充分利用寄存器资源,优化后的聚合量参数中的标量部分可以用参数寄存器传递,速度较快,提升了编译后代码的执行效率。
技术领域
本申请涉及计算机技术领域,特别涉及一种函数的参数优化方法、编译器、芯片及电子设备。
背景技术
计算机系统程序的性能取决于两个方面,一个是计算机硬件的性能,一个是运行在计算机硬件上的软件自身的性能。软件自身的性能则包括软件的执行效率以及软件的代码大小。编译器则负责对软件的执行效率以及软件的代码大小进行优化,以期望尽可能地提高编译后的软件的性能。
发明人发现现有技术至少存在以下问题:按照现有的函数调用规范,编译器在对软件代码进行优化时,如果函数的参数的长度大于两个参数寄存器长度,则直接使用栈对该参数进行传递,栈传递参数的速度较慢,影响软件代码的执行效率。
发明内容
本申请部分实施例的目的在于提供一种函数的参数优化方法、编译器、芯片及电子设备,尽可能的利用参数寄存器来传递被调用函数中需要使用栈传递的聚合量参数,能够充分利用寄存器资源;同时,相对于现有技术中用栈传递的聚合量参数,本发明可以用参数寄存器传递优化后的聚合量参数中的标量部分,速度较快,从而提升了编译后代码的执行效率。
本申请实施例提供了一种函数的参数优化方法,包括:对待编译代码中的被调用函数以及被调用函数的调用函数分别进行寄存器压力评估,得到被调用函数的寄存器压力余量以及调用函数的寄存器压力余量;获取用于传递被调用函数的聚合量参数的参数寄存器的余量;将被调用函数的寄存器压力余量、调用函数的寄存器压力余量以及参数寄存器的余量中的最小值,作为被调用函数的寄存器余量;对于每个需要使用栈传递的聚合量参数,根据聚合量参数的长度和寄存器余量,对聚合量参数进行优化以得到优化后的聚合物参数,其中至少部分优化后的聚合量参数为标量。
本申请实施例还提供了一种编译器,用于执行上述的函数的参数优化方法。
本申请实施例还提供了一种芯片,包括上述的编译器。
本申请实施例还提供了一种电子设备,包括上述的芯片。
本申请实施例相对于现有技术而言,先对被调用函数与被调用函数的调用函数分别进行寄存器压力评估,得到被调用函数与调用函数的寄存器压力余量,再获取被调用函数中用于传递聚合量参数的参数寄存器的余量,将被调用函数与调用函数的寄存器压力余量与用于传递聚合量参数的参数寄存器的余量中的最小值作为被调用函数的寄存器余量,对于待编译代码中被调用函数的需要使用栈传递的聚合量参数,根据该聚合量参数的长度与寄存器余量,对聚合量参数进行优化,以得到优化后的聚合量参数,至少部分优化后的聚合量参数为标量,标量部分可以直接用参数寄存器进行传递,即尽可能的利用参数寄存器来传递被调用函数中需要使用栈传递的聚合量参数,能够充分利用寄存器资源;同时,相对于现有技术中用栈传递聚合量参数,本发明可以用参数寄存器传递优化后的聚合量参数中的标量部分,速度较快,从而提升了编译后代码的执行效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市汇顶科技股份有限公司,未经深圳市汇顶科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910487030.2/2.html,转载请声明来源钻瓜专利网。