计算机工程与科学 ›› 2021, Vol. 43 ›› Issue (06): 962-968.
朱广林1,2,吕方1,赖庆宽1,2,陈华英3,何先波1,2
ZHU Guang-lin1,2,L Fang1,LAI Qing-kuan1,2,CHEN Hua-ying3,HE Xian-bo1,2#br#
摘要: 编译优化技术的目的是挖掘程序中的优化空间,提高程序编译或运行效率,无效代码删除优化是被广泛使用的编译优化技术之一,它旨在删除程序中不可达的代码,以提升程序的执行效率。许多应用程序的执行路径往往与运行时的输入参数值相关,并且在一些分支路径上与运行时参数值相结合,可能存在无效代码,通过现有的无效代码删除优化,很难做出优化处理。为此,提出一种依赖数据流分析的激进蝴蝶优化方法,利用SSA中间表示,根据动态运行时的参数可能值,自动为程序生成代码形状类似蝴蝶(butterfly)的分支代码,使编译器在程序编译阶段为相关优化提供可行的优化依据。最后通过实验验证了该方法的有效性和可行性。