Q. Consider the following ANSI C code segment:
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:

Code:
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; 
} 
} 
  • (A) 403 and 102
  • (B) 203 and 2
  • (C) 303 and 102
  • (D) 303 and 2
πŸ’¬ Discuss
βœ… Correct Answer: (D) 303 and 2

You must be Logged in to update hint/solution

πŸ’¬ Discussion


πŸ“Š Question Analytics

πŸ‘οΈ
240
Total Visits
πŸ“½οΈ
4 y ago
Published
πŸŽ–οΈ
Ram Sharma
Publisher
πŸ“ˆ
88%
Success Rate