活跃性分析:编译器与程序分析中的一种数据流分析,用来判断在程序的某个点上,某个变量的当前值在未来是否还会被使用(即“仍然活跃/Live”)。常用于寄存器分配、死代码消除等优化。(该术语也可能在更广义的“活性/可用性”语境中出现,但最常见指编译器里的变量活跃性。)
/ˈlaɪvnəs əˈnæləsɪs/
Liveness analysis tells the compiler which variables are still needed.
活跃性分析会告诉编译器哪些变量仍然需要保留。
By running liveness analysis on the control-flow graph, the optimizer can build an interference graph and improve register allocation without changing program behavior.
在控制流图上运行活跃性分析后,优化器可以构建冲突图并改进寄存器分配,同时不改变程序行为。
liveness 来自形容词 live(“活的;仍在起作用的”),在编译器语境里引申为“变量的值是否还‘活着’(未来会被用到)”。analysis 源自希腊语词根,表示“分析、分解研究”。合起来就是“判断变量是否仍将被使用的分析”。