Chapter 11 Register Allocation 11.1
重写代码之后(修改 c):
11.3
a. 有潜在溢出,无实际溢出;
b. 无潜在溢出,无实际溢出。
Chapter 13 Garbage Collection 13.2
t: N
4x: N
8y: N
8Chapter 18 Loop Optimizations 18.1
(a)
D[A]: {A}
D[B]: {A, B}
D[C]: {A, C}
D[D]: {A, B, D}
D[E]: {A, C, E}
D[F]: {A, C, F}
D[G]: {A, B, D, G}
D[H]: {A, B, D, H}
D[I]: {A, I}
D[J]: {A, J}
D[K]: {A, B, D, G, K}
D[L]: {A, L}
D[M]: {A, M}
(b)
(c) J->C: {C,E,F} G->B:{B,D,G,H} H->D:{D,H}
18.2 (a)
D[1]: {1}
D[2]: {1, 2}
D[3]: {1, 3}
D[4]: {1, 4}
D[5]: {1, 5}
D[6]: {1, 2, 6}
D[7]: {1, 7}
D[8]: {1, 4, 8}
(b)
D[1]: {1}
D[2]: {1, 2}
D[3]: {1, 2, 3}
D[4]: {1, 2, 3, 4}
D[5]: {1, 2, 3, 4, 5}
D[6]: {1, 6}
D[7]: {1, 7}
D[8]: {1, 8}
D[9]: {1, 9}
(c)
D[1]: {1}
D[2]: {1, 2}
D[3]: {1, 2, 3}
D[4]: {1, 2, 3, 4}
D[5]: {1, 5}
D[6]: {1, 6}
D[7]: {1, 6, 7}
(d)
D[1]: {1}
D[2]: {1, 2}
D[3]: {1, 3}
D[4]: {1, 3, 4}
D[5]: {1, 5}
D[6]: {1, 6}
D[7]: {1, 3, 4, 7}
D[8]: {1, 8}
D[9]: {1, 3, 4, 9}
D[10]: {1, 6, 10}
D[11]: {1, 3, 4, 11}
D[12]: {1, 6, 12}
D[13]: {1, 3, 4, 13}
D[14]: {1, 3, 4, 13, 14}
18.6 假设在原图中有多个节点指向头结点 Ns, 那么可以引入一个节点 Nt,并将指向 Ns 的节
点指向Nt,而 Nt 指向 Ns 完成转换。如下图: