一种即时编译器中的分支指令优化方法、装置制造方法及图纸

技术编号:38909649 阅读:20 留言:0更新日期:2023-09-25 09:27
本发明专利技术实施例提供了一种即时编译器中的分支指令优化方法、装置。从源代码中获取待执行的跳转指令,以及跳转指令对应的第一语法树片段在各分支路径的分支预测成功率;分支预测成功率用于表征跳转指令分别执行目标的分支路径的对应成功几率;在分支预测成功率低于第一阈值的情况下,获取每个分支路径执行时所需的性能开销值;在存在性能开销值低于第二阈值的分支路径的情况下,通过调整第一语法树片段将跳转指令转换为条件转移指令,根据条件转移指令执行源代码,获得执行结果。本申请通过对分支路径的分支预测成功率和性能开销值的判断,确定是否可以将分支指令转换为条件转移指令,节约了处理器的资源,提升了分支指令的处理效率。理效率。理效率。

【技术实现步骤摘要】
一种即时编译器中的分支指令优化方法、装置


[0001]本专利技术涉及虚拟机
,特别是涉及一种即时编译器中的分支指令优化方法、装置、电子设备及存储介质。

技术介绍

[0002]虚拟机(VM,Virtual Machine)主要通过软件或者辅以少量硬件支持的方法虚拟出一台计算机,其依托于本地的物理机,通过其执行引擎对给定的虚拟机指令序列在本地机器上模拟执行。在运行时,虚拟机将会通过即时编译器把某些运行特别频繁的热点代码编译成与本地代码相关的机器码,并进行各种层次的优化。
[0003]现有技术中,对于语义逻辑如if(x)then C=A else C=B的一组虚拟机指令,仅当值节点A、B为常数、变量等非运算节点时,即时编译器才会使用条件转移指令来消除条件分支。但是对于复杂的情况,即A、B为赋值或者运算节点时,现有优化策略失效,即时编译器无法使用条件转移指令来消除条件分支,最终只能将这组指令翻译为分支跳转指令,导致处理效率低下。

技术实现思路

[0004]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种即时编译器中的分支指令优化方法、装置、电子设备及存储介质。
[0005]第一方面,本申请实施例公开了一种即时编译器中的分支指令优化方法,所述方法包括:
[0006]从源代码中获取待执行的跳转指令,以及所述跳转指令对应的第一语法树片段在各分支路径的分支预测成功率;所述跳转指令用于分别指示至少两个分支路径操作的执行;所述分支预测成功率用于表征所述跳转指令分别执行目标的分支路径的对应成功几率;
[0007]在所述分支预测成功率低于第一阈值的情况下,获取每个所述分支路径执行时所需的性能开销值;
[0008]在存在所述性能开销值低于第二阈值的分支路径的情况下,通过调整所述第一语法树片段将所述跳转指令转换为条件转移指令;所述条件转移指令用于对所述第一语法树片段进行条件判断,获取优化后的目标路径;
[0009]根据所述条件转移指令执行所述源代码,获得执行结果。
[0010]第二方面,本申请实施例公开了一种即时编译器中的分支指令优化装置,所述装置包括:
[0011]第一获取模块,用于从源代码中获取待执行的跳转指令,以及所述跳转指令对应的第一语法树片段在各分支路径的分支预测成功率;所述跳转指令用于分别指示至少两个分支路径操作的执行;所述分支预测成功率用于表征所述跳转指令分别执行目标的分支路径的对应成功几率;
[0012]第二获取模块,用于在所述分支预测成功率低于第一阈值的情况下,获取每个所述分支路径执行时所需的性能开销值;
[0013]转换模块,用于在存在所述性能开销值低于第二阈值的分支路径的情况下,通过调整所述第一语法树片段将所述跳转指令转换为条件转移指令;所述条件转移指令用于对所述第一语法树片段进行条件判断,获取优化后的目标路径;
[0014]执行模块,用于根据所述条件转移指令执行所述源代码,获得执行结果。
[0015]第三方面,本申请实施例还公开了一种电子设备,包括有处理器;以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0016]从源代码中获取待执行的跳转指令,以及所述跳转指令对应的第一语法树片段在各分支路径的分支预测成功率;所述跳转指令用于分别指示至少两个分支路径操作的执行;所述分支预测成功率用于表征所述跳转指令分别执行目标的分支路径的对应成功几率;
[0017]在所述分支预测成功率低于第一阈值的情况下,获取每个所述分支路径执行时所需的性能开销值;
[0018]在存在所述性能开销值低于第二阈值的分支路径的情况下,通过调整所述第一语法树片段将所述跳转指令转换为条件转移指令;所述条件转移指令用于对所述第一语法树片段进行条件判断,获取优化后的目标路径;
[0019]根据所述条件转移指令执行所述源代码,获得执行结果。
[0020]第四方面,本申请实施例还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面方法。
[0021]本申请实施例中,从源代码中获取待执行的跳转指令,以及跳转指令对应的第一语法树片段在各分支路径的分支预测成功率,跳转指令用于指示至少两个分支路径操作的执行;分支预测成功率用于表征跳转指令分别执行目标的分支路径的对应成功几率;在分支预测成功率低于第一阈值的情况下,获取每个分支路径执行时所需的性能开销值;在存在性能开销值低于第二阈值的分支路径的情况下,通过调整所述第一语法树片段将跳转指令转换为条件转移指令,条件转移指令用于对第一语法树片段进行条件判断,获取优化后的目标路径;根据条件转移指令执行源代码,获得执行结果。本申请通过对分支路径的分支预测成功率和性能开销值的判断,确定了可以将分支指令转换为条件转移指令,并将分支指令转换为条件转移指令后执行源代码,节约了处理器的资源,提升了分支指令的处理效率。通过性能开销值进一步确定是否进行优化保证不会优化后出现性能回退的问题,保证了机器码的性能提升,提高了分支指令的执行效率。
附图说明
[0022]图1示出了本专利技术实施例提供的一种即时编译器中的分支指令优化方法步骤流程图;
[0023]图2示出了本专利技术实施例提供的又一种即时编译器中的分支指令优化方法步骤流程图;
[0024]图3示出了本专利技术实施例提供的第一语法树片段的示意图;
[0025]图4示出了本专利技术实施例提供的第二语法树片段的示意图;
[0026]图5示出了本专利技术实施例提供的目标语法树片段的示意图;
[0027]图6示出了本专利技术实施例提供的一种即时编译器中的分支指令优化装置的框图;
[0028]图7是本专利技术实施例提供的一种电子设备的框图;
[0029]图8是本专利技术另一个实施例的另一种电子设备的框图。
具体实施方式
[0030]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。
[0031]下面对本申请涉及的概念以及背景进行说明。
[0032]虚拟机(VM,Virtual Machine)主要通过软件或者辅以少量硬件支持的方法虚拟出一台计算机,其依托于本地的物理机,通过其执行引擎对给定的虚拟机指令序列在本地机器上模拟执行。程序可以通过虚拟机中的解释器来解释执行,解释器以虚拟机指令为单位进行取指令、译码和执行。在程序的运行过程中,如某个方法或代码块的运行特别频繁时,虚拟机就会将此方法或代码块编译成本地机器码,并辅以各种优化,然后由硬件直接执行这些本地机器码。完成这个任务的后端编译器即为即时编译器,即时编译器编译出来的本地机器码,由于使用了很多的优化技术,故执行效率远高于解释器。
[0033]通常即时编译器先对一个方法或代码块对应的一组虚拟机指令分析本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种即时编译器中的分支指令优化方法,其特征在于,所述方法包括:从源代码中获取待执行的跳转指令,以及所述跳转指令对应的第一语法树片段在各分支路径的分支预测成功率;所述跳转指令用于分别指示至少两个分支路径操作的执行;所述分支预测成功率用于表征所述跳转指令分别执行目标的分支路径的对应成功几率;在所述分支预测成功率低于第一阈值的情况下,获取每个所述分支路径执行时所需的性能开销值;在存在所述性能开销值低于第二阈值的分支路径的情况下,通过调整所述第一语法树片段将所述跳转指令转换为条件转移指令;所述条件转移指令用于对所述第一语法树片段进行条件判断,获取优化后的目标路径;根据所述条件转移指令执行所述源代码,获得执行结果。2.根据权利要求1所述的方法,其特征在于,所述获取每个所述分支路径执行时所需的性能开销值,包括:分别获取每个所述分支路径各自对应的值节点的性能开销值,所述值节点用于描述所述分支路径中对应的取值,所述值节点包括赋值类型节点或运算类型节点;将每个所述值节点的性能开销值之和作为每个所述分支路径执行时所需的性能开销值。3.根据权利要求1所述的方法,其特征在于,所述通过调整所述第一语法树片段将所述跳转指令转换为条件转移指令,包括:对所述第一语法树片段进行调整,得到目标语法树片段;所述第一语法树片段用于表征实现所述跳转指令的节点之间的指令流转关系;根据所述目标语法树片段将所述跳转指令转换为条件转移指令。4.根据权利要求3所述的方法,其特征在于,所述对所述第一语法树片段进行调整,得到目标语法树片段,包括:删除所述第一语法树片段中的第一存储节点,并在删除后,调整所述第一语法树片段的剩余节点之间的连接关系,获得第二语法树片段;所述第一语法树片段包括所述分支路径各自对应的分支节点、所述分支节点对应的值节点,以及每个所述值节点对应的第一存储节点,所述第一存储节点用于存储所述值节点对应的取值;删除所述第二语法树片段中的分支节点以及与所述分支节点关联的节点,在删除位置处添加与所述条件转移指令对应的条件转移节点,并添加所述条件转移节点的连接关系,获得所述目标语法树片段。5.根据权利要求4所述的方法,其特征在于,所述调整所述第一语法树片段的剩余节点之间的连接关系,获得第二语法树片段,包括:将所述值节点分别连接至数据流合并节点;所述数据流合并节点用于根据所述分支路径的执行结果选择对应的值节点;增加第二存储节点,并将所述数据流合并节点连接至所述第二存储节点,获得所述第二语法树片段;所述第二存储节点用于存储所述数据流合并节点的执行结果。6.根据权利要求5所述的方法,其特征在于,所述删除所述第二语法树片段中的分支节点以及与所述分支节点关联的节点,在删除位置处添加与所述条件转移指令对应的条件转移节点...

【专利技术属性】
技术研发人员:孙国云敖琪王锐
申请(专利权)人:龙芯中科技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1