一种动静结合的二进制程序翻译方法

    公开(公告)号:CN114995832B

    公开(公告)日:2023-03-21

    申请号:CN202210748606.8

    申请日:2022-06-28

    摘要: 本发明公开了一种动静结合的二进制程序翻译方法,目的是减少翻译过程的开销,提高翻译效率,提升翻译后二进制程序性能。技术方案是构建一个由源程序解析模块、指令译码模块、IRs优化模块、HIR生成模块、IRt生成模块、IRt优化模块、动态翻译函数插入模块、目标程序生成模块组成的动静结合的二进制翻译系统,以静态二进制翻译为主,将二进制程序中能用静态方法翻译的程序进行静态翻译,生成目标平台对应的二进制程序;对于静态翻译不能翻译的指令,在静态翻译后生成的目标平台对应的二进制程序中插入动态翻译函数,采用动态翻译函数对静态翻译不能翻译的指令进行动态翻译。采用本发明可减少翻译带来的开销,有效提升二进制程序性能。

    一种提高RISC-V二进制代码密度的寄存器分配方法

    公开(公告)号:CN114816532B

    公开(公告)日:2023-04-04

    申请号:CN202210419942.8

    申请日:2022-04-20

    IPC分类号: G06F9/38 G06F9/30

    摘要: 本发明公开了一种提高RISC‑V二进制代码密度的寄存器分配方法,目的是解决当前编译器的寄存器分配方法使代码密度降低的问题;技术方案是构建活跃变量寄存器分配代价模型,基于该模型计算当前分析虚拟寄存器指派给caller‑saved寄存器相对于指派给callee‑saved寄存器的代码密度收益,根据收益判断将跨函数调用中活跃变量对应的虚拟寄存器分配到caller‑saved还是callee‑saved寄存器更有利于减少指令条数,从而将当前被分析函数中跨函数调用的虚拟寄存器优先分配给caller‑saved或callee‑saved寄存器。采用本发明可减少编译生成的指令条数,提高二进制代码密度。

    一种动静结合的二进制程序翻译方法

    公开(公告)号:CN114995832A

    公开(公告)日:2022-09-02

    申请号:CN202210748606.8

    申请日:2022-06-28

    摘要: 本发明公开了一种动静结合的二进制程序翻译方法,目的是减少翻译过程的开销,提高翻译效率,提升翻译后二进制程序性能。技术方案是构建一个由源程序解析模块、指令译码模块、IRs优化模块、HIR生成模块、IRt生成模块、IRt优化模块、动态翻译函数插入模块、目标程序生成模块组成的动静结合的二进制翻译系统,以静态二进制翻译为主,将二进制程序中能用静态方法翻译的程序进行静态翻译,生成目标平台对应的二进制程序;对于静态翻译不能翻译的指令,在静态翻译后生成的目标平台对应的二进制程序中插入动态翻译函数,采用动态翻译函数对静态翻译不能翻译的指令进行动态翻译。采用本发明可减少翻译带来的开销,有效提升二进制程序性能。

    一种提高RISC-V二进制代码密度的寄存器分配方法

    公开(公告)号:CN114816532A

    公开(公告)日:2022-07-29

    申请号:CN202210419942.8

    申请日:2022-04-20

    IPC分类号: G06F9/38 G06F9/30

    摘要: 本发明公开了一种提高RISC‑V二进制代码密度的寄存器分配方法,目的是解决当前编译器的寄存器分配方法使代码密度降低的问题;技术方案是构建活跃变量寄存器分配代价模型,基于该模型计算当前分析虚拟寄存器指派给caller‑saved寄存器相对于指派给callee‑saved寄存器的代码密度收益,根据收益判断将跨函数调用中活跃变量对应的虚拟寄存器分配到caller‑saved还是callee‑saved寄存器更有利于减少指令条数,从而将当前被分析函数中跨函数调用的虚拟寄存器优先分配给caller‑saved或callee‑saved寄存器。采用本发明可减少编译生成的指令条数,提高二进制代码密度。