Apresente o código de três endereços, otimizado pela aplicação do método de construção de um grafo acíclico dirigido para blocos básicos, da seguinte sequência de comandos:
X = X + 2 * Y; Y = 2 * Y + X; Z = Y + X + 5;
Solução do Exercício
Código de três endereços não otimizado, representado por quádruplas
oper
arg1
arg2
result
(0)
*
2
Y
T1
(1)
+
X
T1
T2
(2)
=
T2
X
(3)
*
2
Y
T3
(4)
+
T3
X
T4
(5)
=
T4
Y
(6)
+
Y
X
T5
(7)
+
T5
5
T6
(8)
=
T6
Z
Grafo acíclico dirigido
Código de três endereços otimizado, representado por quádruplas