12.3.3 代码生成算法 为了在代码生成中能有效地分配寄存器,还需随时掌握各寄存器的使用情况。用一个数组RVALUE来描述(记录)每个寄存器当前的状况,是处于空闲状态还是被某个或某几个变量占用;用寄存器Ri的编号值作为数组RVALUE的下标,其数组元素值为变量名(当变量被复写时,则一个寄存器的值可表示多个变量的值);用数组AVALUE[M]表示变量的存放情况。因此一个变量的值可能存放在寄存器中或存放在内存中,也可能既在寄存器中又在内存中。 综上所述一个变量的值表示可能有: RVALUE[Ri]={A,C}表示Ri的现行值是变量A,C的值 AVALUE[A]={A}表示A的值在内存中 AVALUE[A]={Ri,A}表示A的值既在寄存器Ri中又在内存中 AVALUE[A]={Ri}表示变量A的值在寄存器Ri中 |