Solution -------- The mapping from GIMPLE to corresponding rtl statements has been shown here GIMPLE statement: line number 5 in source program a = b; RTL statement: (insn 5 4 6 3 (set (reg:SI 40) (mem/c/i:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int -4 [0xfffffffffffffffc])) [0 b+0 S4 A32])) t5.c:5 -1 (nil)) (insn 6 5 7 3 (set (mem/c/i:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int -8 [0xfffffffffffffff8])) [0 a+0 S4 A32]) (reg:SI 40)) t5.c:5 -1 (nil)) GIMPLE statement: line number 6 in source program x.0 = a + b; RTL statement: (insn 7 6 8 3 (set (reg:SI 41) (mem/c/i:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int -8 [0xfffffffffffffff8])) [0 a+0 S4 A32])) t5.c:6 -1 (nil)) (insn 8 7 9 3 (set (reg:SI 42) (mem/c/i:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int -4 [0xfffffffffffffffc])) [0 b+0 S4 A32])) t5.c:6 -1 (nil)) (insn 9 8 10 3 (set (reg:SI 38 [ x.0 ]) (plus:SI (reg:SI 41) (reg:SI 42))) t5.c:6 -1 (nil)) GIMPLE statement: line number 7 in source program x = x.0; RTL statement: (insn 10 9 11 3 (set (mem/c/i:SI (symbol_ref:SI ("x") ) [0 x+0 S4 A32]) (reg:SI 38 [ x.0 ])) a.c:6 -1 (nil)) GIMPLE statement: line number 8 in source program c = 1; RTL statement: (insn 11 10 12 3 (set (reg:SI 43) (const_int 1 [0x1])) a.c:7 -1 (nil)) (insn 12 11 13 3 (set (mem/c/i:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int -12 [0xfffffffffffffff4])) [0 c+0 S4 A32]) (reg:SI 43)) a.c:7 -1 (nil)) GIMPLE statement: line number 9 in source program y = c; RTL statement: (insn 13 12 14 3 (set (reg:SI 44) (mem/c/i:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int -12 [0xfffffffffffffff4])) [0 c+0 S4 A32])) a.c:8 -1 (nil)) (insn 14 13 20 3 (set (mem/c/i:SI (symbol_ref:SI ("y") ) [0 y+0 S4 A32]) (reg:SI 44)) a.c:8 -1 (nil))