Skip to content
Related Articles
GATE | GATE CS 2021 | Set 2 | Question 40
• Last Updated : 23 May, 2021

Consider the following ANSI C code segment:

z=x + 3 + y->f1 + y->f2;
for (i = 0; i < 200; i = i + 2) { if (z > i)
{
p = p + x + 3;
q = q + y->f1;
} else
{
p = p + y->f2;
q = q + x + 3;
}
}
Assume that the variable y points to a struct (allocated on the heap) containing two fields f1 and f2, and the local variables x, y, z, p, q, and i are allotted registers. Common sub-expression elimination (CSE) optimization is applied on the code. The number of addition and the dereference operations (of the form y ->f1 or y ->f2) in the optimized code, respectively, are:
(A) 403 and 102
(B) 203 and 2
(C) 303 and 102
(D) 303 and 2

Answer: (D)

Explanation: Total 300 additions (for each iteration 3 addition operations (p+c,q+a) or (p+b, q+c) , (i+2)

c=x+3;
z=c+a+b

303 addition operations and 2 dereference operations (for y->f1, y->f2).

Quiz of this Question

Attention reader! Don’t stop learning now. Learn all GATE CS concepts with Free Live Classes on our youtube channel.

My Personal Notes arrow_drop_up