寄存器的分配方法与功能单元的分配方法相似。如果希望在硬件约束条件下进行寄存器的分配,其约束条件可以是寄存器的类型和长度。 下面是图着色算法用于寄存器分配的实例。图5.14是题目diffeq的控制数据流图,图5.18是它的一个调度结果。为了阅读方便,将图5.18复制到图5.30,并且把有关变量标注在相应操作的旁边,以便于观察变量的生存期。各变量的生存期列于表5.5中,其中括号中的数字表示两次相邻循环中的第1次循环或第2次循环。例如,变量y的产生时间为第1次循环的第7控制步,记作7(1);变量y的最后引用时间为第2次循环的第6控制步,记作6(2)。
表5.5 例子diffeq中各变量的生存期
|