基本块管理方法及电子设备与流程

文档序号:34919954发布日期:2023-07-28 01:42阅读:22来源:国知局
基本块管理方法及电子设备与流程

本技术涉及计算机,尤其基本块管理方法及电子设备。


背景技术:

1、中间代码(intermediate code),又可称为中间表示(intermediaterepresentation,ir),用于表示对源代码进行语法分析后到生成目标代码之间的代码。通过编译器编译后,可将中间代码编译成计算机等机器能够直接执行的目标代码。编译器可将中间代码划分成至少一个基本块(basic block),并构造流图,通过流图来表示各个基本块间的执行顺序。将中间代码划分成基本块后,可通过对基本块进行管理,例如删除、修改、插入基本块等操作,便于优化中间代码。如何管理基本块是亟待解决的技术问题。


技术实现思路

1、本技术实施例提供一种基本块管理方法及电子设备,可基于日志打印语句实现基本块管理,减少日志打印的数量。

2、第一方面,本技术实施例提供了一种基本块管理方法,该方法可由电子设备执行,或由与电子设备匹配的装置执行,例如由处理器、芯片或芯片系统等执行。该方法可包括:响应于目标基本块中的第j条语句为日志打印语句,拆分目标基本块,得到第一基本块、第二基本块和第三基本块;第一基本块包括目标基本块中的第1条语句至第j-1条语句,第二基本块包括第j条语句,第三基本块包括目标基本块中的第j+1条语句至最后一条语句;构建包括第一跳转语句的第四基本块,并在第二基本块中插入第一跳转语句,得到第五基本块;第一跳转语句用于指示在执行完第一跳转语句后跳转执行第三基本块;在第一基本块中插入第一条件语句,得到第六基本块;第一条件语句用于指示在执行完条件语句后跳转执行第四基本块或第五基本块;确定第六基本块、第五基本块以及第三基本块之间的执行顺序,或确定第六基本块、第四基本块以及第三基本块之间的执行顺序。其中,目标基本块为中间代码划分的至少一个基本块中的任意一个;j为大于1的整数。

3、可见,当目标基本块中的第j条语句为日志打印语句,则可基于第j条语句对目标基本块进行拆分,使第j条语句可单独拆分至第二基本块。通过构建第四基本块,以及在第一基本块中插入第一条件语句,可控制在执行第一条件语句后,执行第二基本块或执行第四基本块,从而可对基本块进行管理。基于对基本块的管理,还可管理日志打印,例如可通过第一条件语句指示不执行包括第j条语句的第五基本块,从而可实现不打印日志。

4、在一种可能的实现方式中,该方法还可包括:读取第j条语句的语句内容;响应于语句内容包括调用日志打印方法,确定第j条语句为日志打印语句。

5、可见,可根据第j条语句的语句内容确定第j条语句是否为日志打印语句。

6、在一种可能的实现方式中,该方法还可包括:响应于第j条语句满足打印条件,确定第一条件语句用于指示在执行完第一条件语句后,跳转执行第五基本块。基于此,上述确定第六基本块、第五基本块以及第三基本块之间的执行顺序的方法,可包括:确定第六基本块的后继节点为第五基本块,第五基本块的后继节点为第三基本块。

7、可见,第一条件语句可确定第j条语句是否满足打印条件,并在第j条语句满足打印条件的时候,确定需要执行第j条语句,即指示跳转执行包括第j条语句的第五基本块,执行完第五基本块后,再执行第三基本块,从而可在实现日志打印的同时,保障程序的正常运行。

8、在一种可能的实现方式中,该方法还可包括:响应于第j条语句不满足打印条件,确定第一条件语句用于指示在执行完第一条件语句后,跳转执行第四基本块。基于此,上述确定第六基本块、第四基本块以及第三基本块之间的执行顺序的方法,可包括:确定第六基本块的后继节点为第四基本块,第四基本块的后继节点为第三基本块。

9、可见,通过第一条件语句,可在第j条语句不满足打印条件的情况下,指示执行不包括第j条语句的第四基本块,而不会执行日志打印语句,从而可不打印日志,减少日志打印量,降低系统功耗。在执行完第四基本块后,再执行第三基本块,从而可在减少日志打印量的同时,保障程序的正常运行。

10、在一种可能的实现方式中,该方法还可包括:响应于目标基本块中的第j+i条语句为返回语句且第j+i条语句引用第j条语句,在第四基本块中插入常量语句,得到第七基本块;其中,i为大于1的整数;在第三基本块中插入选择函数语句,并将第三基本块中的第j+i条语句引用第j条语句修改为第j+i条语句引用选择函数语句,得到第八基本块;其中,选择函数语句的执行顺序先于第j+i条语句的执行顺序;选择函数语句用于根据第一条件语句确定选择函数语句引用第j条语句或所述常量语句。

11、可见,当执行第六基本块后执行第七基本块,即在不执行包括第j条语句的第五基本块的情况下,选择函数语句可引用常量语句,从而第j+i条语句可引用函数语句,以此可避免在此种情况下第j+i条语句无法引用第j条语句的情况,可保障程序的正常运行。

12、在一种可能的实现方式中,该方法还可包括:响应于第j条语句满足打印条件,确定第一条件语句用于指示在执行完第一条件语句后,跳转执行第五基本块,以及确定选择函数语句引用第五基本块;确定第六基本块的后继节点为第五基本块,第五基本块的后继节点为第八基本块。

13、可见,第一条件语句可确定第j条语句是否满足打印条件,并在第j条语句满足打印条件的情况下,可在实现日志打印的同时,保障程序正常运行。

14、在一种可能的实现方式中,该方法还可包括:响应于第j条语句不满足打印条件,确定第一条件语句用于指示在执行完第一条件语句后,跳转执行第七基本块,以及确定选择函数语句引用第七基本块;确定第六基本块的后继节点为第四基本块,第四基本块的后继节点为第八基本块。

15、可见,在第j条语句不满打印条件的情况下,在执行完第一条件语句后,跳转执行不包括第j条语句的第七基本块,即不会打印日志,在执行完第七基本块后,执行第八基本块,从而可在减少日志打印量的同时,保障程序的正常运行。

16、在一种可能的实现方式中,该方法还可包括:响应于第三基本块中的第k条语句为日志打印语句,拆分第三基本块,得到第九基本块、第十基本块和第十一基本块;其中,第一基本块包括第三基本块中的第1条语句至第k-1条语句,第十基本块包括第k条语句,第十一基本块包括第三基本块中的第k+1条语句至最后一条语句;构建包括第二跳转语句的第十二基本块,并在第二基本块中插入第二跳转语句,得到第十三基本块;跳转语句用于指示在执行完第二跳转语句后跳转执行第十一基本块;在第九基本块中插入第二条件语句,得到第十四基本块;第二条件语句用于指示在执行完第二条件语句后跳转执行第十二基本块或第十三基本块;确定第十一基本块、第十三基本块以及第十四基本块之间的执行顺序,或确定第十一基本块、第十二基本块以及第十四基本块之间的执行顺序。

17、可见,可继续对第三基本块中包括的日志打印语句进行处理,通过对第三基本块进行拆分等操作,实现对第三基本块中的日志打印语句的管理。

18、第二方面,本技术实施例提供一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种实现方式所述的方法。

19、第三方面,本技术实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实现方式所述的方法。

20、第四方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种实现方式所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1