Consider below two question :-
https://gateoverflow.in/39675/gate-2016-1-19
https://gateoverflow.in/8365/gate2015-1_55
Q1 >> Consider the following code segment.
x = u - t;
y = x * v;
x = y + w;
y = t - z;
y = x * y;
The minimum number of total variables required to convert the above code segment to static single assignment form is __________.
Here answer is 10.
Solution is
x(temp3) = u(temp1) - t(temp2);
y(temp5) = x * v(temp4);
x(temp7) = y + w(temp6);
y(temp9) = t - z(temp8);
y(temp10) = x * y;
so ans should be.10
Q2> The least number of temporary variables required to create a three-address code in static single assignment form for the expression q + r / 3 + s - t * 5 + u * v/w is__________________.
here answer is 8.
Solution:-
t1 = r/3;
t2 = t*5;
t3 = u*v;
t4 = t3/w;
t5 = q + t1;
t6 = t5 + s;
t7 = t6 - t2;
t8 = t7 + t4
In Q1 we are allocating a new variable to each variable, but in the second we are not so, like we are not allocating temp variable to "r", whereas in Solution 1 we have allocated temp variable to u and t both. Even both are using static single assignment?