第十章代码优化.ppt

计算过程 初始化: IN[B1] = IN[B2] = IN[B3] = IN[B4] =空 OUT[B1]={d1,d2,d3}, OUT[B2]={d4,d5} OUT[B3]={d6}, OUT[B4]={d7}. 第一次循环: IN[B1]=空; IN[B2] ={d1,d2,d3,d7}; IN[B3]={d4,d5}; IN[B4]={d4,d5,d6}; OUT[B1]={d1,d2,d3}; OUT[B2]={d3,d4,d5}… 结果: IN[B1]=空;OUT[B1]={d1,d2,d3}; IN[B2]={d1,d2,d3,d5,d6,d7}; OUT[B2]={d3,d4,d5,d6}; IN[B3]={d3,d4,d5,d6}; OUT[B3]={d4,d5,d6}; IN[B4]={d3,d4,d5,d6}; OUT[B4]={d3,d5,d6,d7}; 活跃变量数据流方程 判断在基本块出口之后,变量的值是否还被引用的这种判断工作称为活跃变量分析。 消除复写四元式的依据就是对活跃变量的分析。如果某个变量的值在以后不被引用,那么该复写四元式可以被消除。 对于变量x和流图上的某个点p,存在一条从p开始的路径,在此路径上在对x定值之前引用变量x的值,则称变量x在点p是活跃变量,否则称x在点p不活跃。 无用赋值:对于x在点p的定值,在所有基本块内不被引用,且在基

文档评论(0)

1亿VIP精品文档

相关文档