GATE Exam | Aptitude Questions | GATE Syllabus | GATE Result | Mock Test | GATE Preparation
0 votes

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

asked in Runtime environments & Intermediate code generation by gate

2 Answers

0 votes
Each left hand side is a new variable + the new variables (u,t,v,w,z) on R.H.S.
answered by Minakshi
0 votes

In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a property of an intermediate representation (IR), which requires that each variable is assigned exactly once, and every variable is defined before it is used. Existing variables in the original IR are split into versions, new variables typically indicated by the original name:

x = u - t;

y = x * v;

x = y + w;

y = t - z;

y = x * y;

The value of x being used in the second line comes from the first assignment of x. A program would have to perform reaching definition analysis to determine this. But if the program is in SSA form, both of these are immediate and so the other variables like y:

x1 = u - t;

y1 = x1 * v;

x2 = y1 + w;

y2 = t - z;

y3 = x2 * y2;

Total distinct variables used are: t, u, x1, v, y1, w, x2, z, y2, y3

Hence the answer is 10 variables

answered by Manish (Nishik) Kumar

Related questions

The best answer to any question