9.5.1总体逻辑
逃逸分析以函数为单元对代码进行分析,同内联操作一样,编译器自底向上地遍历源代码中函数调用链形成的有向图,然后依次对各个SCC进行分析。入口函数如下:
函数 Batch
以一个SCC为输入,对该SCC内的所有函数进行逃逸分析,其总体逻辑如下:
创建静态数据流有向图
遍历有向图的每个顶点,并分析指向该顶点的所有路径(Path)上的各个顶点是否需要逃逸
对每个变量设置逃逸标记
函数的主要流程如下,此处仅保留重要步骤的代码:
最后更新于
逃逸分析以函数为单元对代码进行分析,同内联操作一样,编译器自底向上地遍历源代码中函数调用链形成的有向图,然后依次对各个SCC进行分析。入口函数如下:
函数 Batch
以一个SCC为输入,对该SCC内的所有函数进行逃逸分析,其总体逻辑如下:
创建静态数据流有向图
遍历有向图的每个顶点,并分析指向该顶点的所有路径(Path)上的各个顶点是否需要逃逸
对每个变量设置逃逸标记
函数的主要流程如下,此处仅保留重要步骤的代码:
最后更新于