摘要
本发明公开了一种基于值流分析的Golang程序高效过程间逃逸分析方法,包括,对Golang程序进行预处理,得到基于静态单赋值形式的中间代码表示,创建过程间函数调用图和过程内控制流图;将函数调用图做逆拓扑排序,建立待分析函数序列,并对待分析函数进行是否涉及过程间调用判别;根据判别的不同分别计算目标函数的逃逸变量;基于函数调用图分析程序内的所有函数的逃逸变量,将所有分析函数的ESC进行合并得到最终的逃逸变量值的集合;基于SSA的代码中间表示进行Golang程序的逃逸分析,可扩展性高,方便后续做代码数据流分析。