The mapping from GIMPLE to corresponding rtl statements and assembly has been shown here. -------------------------------------------------------------------------------- Line no. 5 in source file: a = b; -------------------------------------------------------------------------------- GIMPLE Statement: a = b; -------------------------------------------------------------------------------- RTL Expand Dump: (insn 5 4 6 3 (set (reg:SI 40) (mem/c:SI (reg/f:SI 33 virtual-stack-vars) [0 b+0 S4 A32])) /home/aniket/grc/Workshop/assignments/one/assign_1.c:5 -1 (nil)) (insn 6 5 7 3 (set (mem/c:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int 4 [0x4])) [0 a+0 S4 A32]) (reg:SI 40)) /home/aniket/grc/Workshop/assignments/one/assign_1.c:5 -1 (nil)) -------------------------------------------------------------------------------- Patterns used from MD File: *load_word & * store_word (define_insn "*load_word" [(set (match_operand:SI 0 "register_operand" "=r") (match_operand:SI 1 "memory_operand" "m") )] "" "lw \\t%0, %m1" ) (define_insn "*store_word" [(set (match_operand:SI 0 "memory_operand" "=m") (match_operand:SI 1 "register_operand" "r") )] "" "sw \\t%1, %m0" ) -------------------------------------------------------------------------------- Assembly: lw $v0, -12($fp) sw $v0, -8($fp) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Line no. 6 in source file: x = a + b; -------------------------------------------------------------------------------- GIMPLE Statements: x.0 = a + b; x = x.0; -------------------------------------------------------------------------------- RTL Expand Dump: (insn 7 6 8 3 (set (reg:SI 41) (mem/c:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int 4 [0x4])) [0 a+0 S4 A32])) /home/aniket/grc/Workshop/assignments/one/assign_1.c:6 -1 (nil)) (insn 8 7 9 3 (set (reg:SI 42) (mem/c:SI (reg/f:SI 33 virtual-stack-vars) [0 b+0 S4 A32])) /home/aniket/grc/Workshop/assignments/one/assign_1.c:6 -1 (nil)) (insn 9 8 10 3 (set (reg:SI 38 [ x.0 ]) (plus:SI (reg:SI 41) (reg:SI 42))) /home/aniket/grc/Workshop/assignments/one/assign_1.c:6 -1 (nil)) (insn 10 9 11 3 (set (mem/c:SI (symbol_ref:SI ("x") ) [0 x+0 S4 A32]) (reg:SI 38 [ x.0 ])) /home/aniket/grc/Workshop/assignments/one/assign_1.c:6 -1 (nil)) -------------------------------------------------------------------------------- Patterns used from MD File: *loadword, *storeword & addsi3 (define_insn "addsi3" [(set (match_operand:SI 0 "register_operand" "=r,r") (plus:SI (match_operand:SI 1 "register_operand" "r,r") (match_operand:SI 2 "nonmemory_operand" "r,K")) )] "" "@ add \\t%0, %1, %2 addi \\t%0, %1, %c2" ) -------------------------------------------------------------------------------- Assembly: lw $a0, -8($fp) lw $v0, -12($fp) add $v0, $a0, $v0 sw $v0, x -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Line no. 7 in source file: c = 1; -------------------------------------------------------------------------------- GIMPLE Statement: c = 1; -------------------------------------------------------------------------------- RTL Expand Dump: (insn 11 10 12 3 (set (reg:SI 43) (const_int 1 [0x1])) /home/aniket/grc/Workshop/assignments/one/assign_1.c:7 -1 (nil)) (insn 12 11 13 3 (set (mem/c:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int 8 [0x8])) [0 c+0 S4 A32]) (reg:SI 43)) /home/aniket/grc/Workshop/assignments/one/assign_1.c:7 -1 (nil)) -------------------------------------------------------------------------------- Patterns used from MD File: *constant_load and *store_word (define_insn "*constant_load" [(set (match_operand:SI 0 "register_operand" "=r") (match_operand:SI 1 "const_int_operand" "i"))] "" "li \\t%0, %c1" ) -------------------------------------------------------------------------------- Assembly: li $v0, 1 sw $v0, -4($fp) -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Line no. 8 in source file: y = c; -------------------------------------------------------------------------------- GIMPLE Statement: y = c; -------------------------------------------------------------------------------- RTL Expand Dump: (insn 13 12 14 3 (set (reg:SI 44) (mem/c:SI (plus:SI (reg/f:SI 33 virtual-stack-vars) (const_int 8 [0x8])) [0 c+0 S4 A32])) /home/aniket/grc/Workshop/assignments/one/assign_1.c:8 -1 (nil)) (insn 14 13 20 3 (set (mem/c:SI (symbol_ref:SI ("y") ) [0 y+0 S4 A32]) (reg:SI 44)) /home/aniket/grc/Workshop/assignments/one/assign_1.c:8 -1 (nil)) -------------------------------------------------------------------------------- Patterns used from MD File: *load_word and *store_word -------------------------------------------------------------------------------- Assembly: lw $v0, -4($fp) sw $v0, y -------------------------------------------------------------------------------- --------------------------------------------------------------------------------