1、定义
对于变量x和程序点p,判断x在点p上的值是否会在流图中的某条从点p出发的路径中使用。如果是,就说x在p上活跃;否则就说x在p上是死的。
2、用途
重要用途之一是为基本块进行存储器分配。一个值被计算保存到一个寄存器中后,很有可能在基本块中被使用。如果它在基本块中是死的,就不必在结尾处保存这个值。另外在所有寄存器被占用时,如果还需申请寄存器的话,应该考虑使用一个存储了已死亡的值的寄存器,因为该值无需保存到内存。
3、分析
活跃变量分析是按照程序控制流的反方向进行计算的,若直接以IN[B]和OUT[B]的方式定义数据流方程,其中IN[B]和OUT[B]分别表示紧靠基本块B之前和紧随B之后的点上的活跃变量集合,该集合可以通过以下方法获得:首先定义各个语句的传递函数,然后再把他们组合起来得到一个基本块的传递函数。