[发明专利]一种寄存器处理方法、装置、电子设备及存储介质在审
申请号: | 201910797926.0 | 申请日: | 2019-08-27 |
公开(公告)号: | CN112445484A | 公开(公告)日: | 2021-03-05 |
发明(设计)人: | 敖琪;王雪;井田;高翔 | 申请(专利权)人: | 龙芯中科技术股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/448 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 寄存器 处理 方法 装置 电子设备 存储 介质 | ||
本发明实施例提供了一种寄存器处理方法和装置,所述方法包括:获取需即时编译的父程序调用的已静态编译的子程序,检测所述子程序中使用目标寄存器的使用信息,根据所述使用信息,对所述目标寄存器进行保存或恢复,使得在即时编译的父程序调用静态编译的子程序的前后有针对性的保存或恢复寄存器,达到减少保存或恢复目标寄存器时的指令数量的效果,从而提高执行性能。
技术领域
本发明涉及计算机技术领域,特别是涉及一种寄存器处理方法、一种寄存器处理装置、一种电子设备以及一种可读存储介质。
背景技术
动态编译是某些程式语言在执行时用来增进效能的方法,一般指的是程序在运行时进行编译。与之相对的是事前编译,也叫静态编译。静态编译就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应静态库(例如,拓展名为.a或.lib的库)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。静态编译典型的例子是gcc(GNU Compiler Collection,GNU编译器套件)的编译方式。gcc会先将源程序编译成可执行的机器码,在部署或分发程序时,直接部署编译后的机器码即可,在程序执行时不再需要编译过程。
动态编译的典型例子是Java(一种计算机编程语言)虚拟机中的即时编译(Just-in-time compilation,简称JIT)方式。Java程序是一种字节码程序,并不能在实际的物理机上直接执行,在执行Java程序时一般先进行解释执行,其执行速度肯定比可执行的二进制机器码程序慢。为了提高执行速度,引入了JIT。在运行时,当识别到热点方法或循环时,JIT会对热点方法进行动态编译,将字节码编译成本地可执行的机器码,,然后直接运行编译后的机器码,并把翻译过来的机器码保存起来,以备下次使用。
编译的程序中会存在调用者和被调用者。在进行子程序调用时,由调用者(caller)负责保存的寄存器称为caller-saved(调用者保存)寄存器。在进行子程序调用时,由被调用者(callee)负责保存的寄存器称为callee-saved(被调用者保存)寄存器。
在编译一个程序中的调用者和被调用者时,若调用者和被调用者在同一编译器和同一时刻进行编译,在编译时编译器知道被调用子程序的信息,因此可以在编译时确定子程序所需的寄存器,在调用处只保存子程序中使用了的caller-saved寄存器即可,从而避免保存和恢复不必要的caller-saved寄存器,生成最优的代码。
但是显然这种方式无法适用于即时编译和静态编译混用的情况。在即时编译时,被调用子程序已经由其他静态编译器编译成机器码,无法进行相关的寄存器保存和恢复的优化。
现有技术中,在即时编译程序调用静态编译程序的前后,不得不对所有的caller-saved寄存器进行保存和恢复操作,有可能会产生一些不必要的保存和恢复,在caller-saved寄存器较多的体系结构中,有可能会产生较大的性能开销。
发明内容
本发明实施例所要解决的技术问题是提供一种寄存器处理方法、装置、电子设备及可读存储介质,以便解决即时编译和静态编译混用时无法对寄存器的保存与恢复进行优化的问题。
为了解决上述问题,本发明提供了一种寄存器处理方法,包括:
获取需即时编译的父程序调用的已静态编译的子程序;
检测所述子程序中使用目标寄存器的使用信息;
根据所述使用信息,对所述目标寄存器进行保存或恢复。
可选地,所述检测所述子程序中使用目标寄存器的使用信息包括:
检测在所述子程序中所有被更改的寄存器;
确定所述寄存器中需由所述父程序保存的目标寄存器,得到所述使用信息。
可选地,所述根据所述使用信息,对所述目标寄存器进行保存或恢复包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术股份有限公司,未经龙芯中科技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910797926.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种eMMC测试方法和装置
- 下一篇:反熔丝器件、反熔丝单元结构及其制备方法