Consider the following ANSI C code segment: z=x + 3 + y->f1 + y->f2; for (i =…

GATE · 2021 · CS · Set 2 · Computer Science & IT

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 f1f1 and f2f2, 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 ->f1f1 or y ->f2f2) in the optimized code, respectively, are:

  1. A.

    403 and 102

  2. B.

    203 and 2

  3. C.

    303 and 102

  4. D.

    303 and 2

Attempted by 94 students.

Sign up free to check your answer

Sign up free

Explore the full course: Gate Guidance By Sanchit Sir

Loading lesson…