Code Generation and Optimization · Compiler Design · GATE CSE

Start Practice

Marks 1

Marks 2

1

Consider the following pseudo-code.

L1: t1 = -1
L2: t2 = 0
L3: t3 = 0
L4: t4 = 4 * t3
L5: t5 = 4 * t2
L6: t6 = t5 * M
L7: t7 = t4 + t6
L8: t8 = a[t7]
L9: if t8 <= max goto L11
L10: t1 = t8
L11: t3 = t3 + 1
L12: if t3 < M goto L4
L13: t2 = t2 + 1
L14: if t2 < N goto L3
L15: max = t1

Which one of the following options CORRECTLY specifies the number of basic blocks and the number of instructions in the largest basic block, respectively ?

GATE CSE 2024 Set 1
2

Consider the control flow graph shown.

GATE CSE 2023 Compiler Design - Code Generation and Optimization Question 2 English

Which one of the following choices correctly lists the set of live variables at the exit point of each basic block?

GATE CSE 2023
3

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 -> f2;

} 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, g, and i are allotted registers. Common sub-expression elimination (CSE) optimization is applied on the code. The number of addition and dereference operations (of the form y -> f1 or y -> f2 ) in the optimized code, respectively, are:  

GATE CSE 2021 Set 2
4

For a statement S in a program, in the context of liveness analysis, the following sets are defined:

USE(S): the set of variables used in S

IN(S): the set of variables that are live at the entry of S

OUT(S): the set of variables that are live at the exit of S

Consider a basic block that consists of two statements, S1 followed by S2.

Which one of the following statements is correct?

GATE CSE 2021 Set 2
5
A variable x is said to be live at a statement $${S_i}$$ in a programif the following three conditions hold simultaneously:

i. There exists a statement $${S_j}$$ that uses x
ii. There is a path from $${S_i}$$ to $${S_j}$$ in the flow graph corresponding to the program
iii. The path has no intervening assignment to x including at $${S_i}$$ and $${S_j}$$

GATE CSE 2015 Set 1 Compiler Design - Code Generation and Optimization Question 9 English

The variables which are live both at the statement in basic block 2 and at the statement in basic block 3 of the above control flow graph are

GATE CSE 2015 Set 1
6
The least number of temporary variables required to create a three-address code in static single assignment form for the expression $$q + r / 3 + s - t * 5 + u * v/w$$ is _______________.
GATE CSE 2015 Set 1
7
Consider the intermediate code given below.
(1)  i = 1
(2)  j = 1
(3)  t1 = 5 ∗ i
(4)  t2 = t1 + j
(5)  t3 = 4 ∗ t2
(6)  t4 = t3
(7)  a[t4] = -1
(8)  j = j + 1
(9)  if j<=5 goto (3)
(10) i=i+1
(11) if i<5 goto (2)

The number of nodes and edges in the control-flow-graph constructed for the above code, respectively, are

GATE CSE 2015 Set 2
8
For a C program accessing X[ i ] [ j ] [ k ], the following intermediate code is generated by a compiler. Assume that the size of an integer is 32 bits and the size of a character is 8 bits.
t0 = i * 1024 
t1 = j * 32 
t2 = k * 4 
t3 = t1 + t0 
t4 = t3 + t2 
t5 = X[t4] 
Which one of the following statements about the source code for the C program is CORRECT?
GATE CSE 2014 Set 2
9
Consider the following C code segment.
for (i = 0; i < n; i++) 
  { 
      for (j=0; j < n; j++) 
      { 
          if (i%2) 
          { 
           x += (4*j + 5*i); 
           y += (7 + 4*j); 
          } 
       } 
  } 
Which one of the following is false?
GATE CSE 2006
10

Consider the following translation scheme.

$$\eqalign{ & S \to ER \cr & R \to *E\left\{ {pr{\mathop{\rm int}} ('*');} \right\}R\,|\,\varepsilon \cr & E \to F + E\left\{ {pr{\mathop{\rm int}} (' + ');} \right\}\,|\,F \cr & F \to S\,|\,id\,\left\{ {pr{\mathop{\rm int}} (id.value);} \right\} \cr} $$

Here id is a token that represents an integer and id.value represents the corresponding integer value. For an input '2 * 3 + 4' this translation scheme prints

GATE CSE 2006
11
Consider line number 3 of the following C - program.
int main ( ) {              /* Line 1 */ 
int I, N;                   /* Line 2 */ 
fro (I = 0, I < N, I++);    /* Line 3 */ 
} 
Identify the compiler's response about this line while creating the object-module
GATE CSE 2005
12
Which of the following is NOT an advantage of using shared, dynamically linked libraries as opposed to using statically linked libraries?
GATE CSE 2003
13

Consider the syntax directed definition shown below.

GATE CSE 2003 Compiler Design - Code Generation and Optimization Question 15 English

Here, gen is a function that generates the output code, and newtemp is a function that returns the name of a new temporary variable on every call. Assume that ti's are the temporary variable names generated by newtemp. For the statement 'X : = Y + Z', the 3-address code sequence generated by this definition is

GATE CSE 2003
EXAM MAP
Medical
NEETAIIMS
Graduate Aptitude Test in Engineering
GATE CSEGATE ECEGATE EEGATE MEGATE CEGATE PIGATE IN
Civil Services
UPSC Civil Service
Defence
NDA
Staff Selection Commission
SSC CGL Tier I
CBSE
Class 12