编译原理 第13次作业
151220129 计科 吴政亿 wuzy.nju@gmail.com
第一题 8.6.5
t1 = b * c
LD R1, b
LD R2, c
MUL R1, R1, R2
t2 = a
LD R2, a
t3 = t1 + t2
ADD R1, R1, R2
x = t3
ST x, R1
R1 | R2 | a | b | c | x | t1 | t2 | t3 |
---|---|---|---|---|---|---|---|---|
a | b | c | x | |||||
t1 | c | a | b | c,R2 | x | R1 | ||
t1 | a,t2 | a,R2 | b | c | x | R1 | R2 | |
t3 | a,t2 | a,R2 | b | c | x | R2 | R1 | |
t3 | a,t2 | a,R2 | n | c | x,R1 | R2 | R1 |
第二题 9.1.1
- 基本块 B3,B4 B 3 , B 4 是一个循环,基本块 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 是另一个循环。
-
- (3) c = 1 + b
- (4) d = c - 1
- (6) d = 1 + b
- (8) b = 1 + b
- (9) e = c - 1
-
- 对于循环 B3,B4 B 3 , B 4 来说, a+b a + b 是全局公共子表达式
- 对于循环 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 来说,(6)(8)的 a+b a + b ,(9)的 c−a c − a 是全局公共子表达式
- 略
-
- 对于循环 B3,B4 B 3 , B 4 来说, a+b a + b 是全部循环不变计算
- 对于循环 B2,B3,B4,B5 B 2 , B 3 , B 4 , B 5 来说,没有全部循环不变计算
第三题 9.1.4
dp = 0
i = 0
t1 = 0
L: t2 = A[t1]
t3 = B[t1]
t4 = t2 * t3
dp = dp + t4
i = i + 1
t1 = t1 + 8
if i<n goto L