GATE CS 2025 Set 1 | Question 52
Refer to the given 3-address code sequence. This code sequence is split into basic blocks. The number of basic blocks is ________. (Answer in integer)
1001: i = 1
1002: j = 1
1003: t1 = 10*i
1004: t2 = t1+j
1005: t3 = 8*t2
1006: t4 = t3-88
1007: a[t4] = 0.0
1008: j = j+1
1009: if j <= 10 goto 1003
1010: i = i+1
1011: if i <= 10 goto 1002
1012: i = 1
1013: t5 = i-1
1014: t6 = 88*t5
1015: a[t6] = 1.0
1016: i = i+1
1017: if i <= 10 goto 1013
Explanation
Answer: 6
A new basic block starts at every leader: the first instruction, every jump target, and every instruction right after a jump.
- First instruction: 1001.
- Jump targets: 1003, 1002 and 1013.
- Instructions after a jump: 1010 (after 1009) and 1012 (after 1011); 1017 is the last line.
The six leaders 1001, 1002, 1003, 1010, 1012 and 1013 give the blocks 1001 | 1002 | 1003–1009 | 1010–1011 | 1012 | 1013–1017.
Answer: 6