Open In App

GATE | GATE CS 2021 | Set 2 | Question 40

Last Updated : 23 May, 2021
Like Article
Like
Save
Share
Report

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
Please comment below if you find anything wrong in the above post


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads