CS715 :  Design and Implementation of the Gnu Compiler Generation Framework  (2008-2009)


Welcome to the course homepage. Your instructor is Uday Khedker and TA is Sameera Deshpande. Please see the proposal document of this course to get an idea of the nature of the course.

Announcements

Clearly, all of them require you to have done CS 715. Further, barring the first topic, all others require CS 618 (Program Analysis). If you have not done CS 618, you will need to register for it in the next semester.
The deadline for this assignment is Wed 5 Nov. Based on the assessment of this assignment, I will decide on 5th Nov whether the subsequent assignment should be an independent assignment or an extension of this assignment.
Basic block 1 prev -1, next -2, loop_depth 0, count 0, freq 0.
Predecessors:  ENTRY (fallthru)
Successors:  EXIT [100.0%]  (fallthru)

(note 2 0 4 NOTE_INSN_DELETED)

(note 4 2 7 0 NOTE_INSN_FUNCTION_BEG)
   
;; Start of basic block 1, registers live: (nil)
(note 7 4 9 1 [bb 1] NOTE_INSN_BASIC_BLOCK)
   
(insn 9 7 10 1 (set (reg:SI 61 [ c ])
        (mem/c/i:SI (plus:SI (reg/f:SI 20 frame)
                (const_int -4 [0xfffffffc])) [0 c+0 S4 A32])) 34 {*movsi_1} (nil)
    (nil))

(insn 10 9 11 1 (parallel [
            (set (reg:SI 60)
                (plus:SI (mem/c/i:SI (plus:SI (reg/f:SI 20 frame)
                            (const_int -8 [0xfffffff8])) [0 b+0 S4 A32])
                    (reg:SI 61 [ c ])))
            (clobber (reg:CC 17 flags))
        ]) 148 {*addsi_1} (nil)
    (nil))

(insn 11 10 12 1 (set (mem/c/i:SI (plus:SI (reg/f:SI 20 frame)
                (const_int -12 [0xfffffff4])) [0 a+0 S4 A32])
        (reg:SI 60)) 34 {*movsi_1} (nil)
    (expr_list:REG_EQUAL (plus:SI (mem/c/i:SI (plus:SI (reg/f:SI 20 frame)
                    (const_int -8 [0xfffffff8])) [0 b+0 S4 A32])
            (mem/c/i:SI (plus:SI (reg/f:SI 20 frame)
                    (const_int -4 [0xfffffffc])) [0 c+0 S4 A32]))
        (nil)))
(note 12 11 16 1 NOTE_INSN_FUNCTION_END)

(insn 16 12 17 1 (clobber (reg/i:SI 0 ax)) -1 (nil)
    (nil))

(insn 17 16 21 1 (clobber (reg:SI 58 [ <result> ])) -1 (nil)
    (nil))

(insn 21 17 0 1 (use (reg/i:SI 0 ax)) -1 (nil)
    (nil))
;; End of basic block 1, registers live:
 (nil)

This code should be replaced by the following output.

;; Start of basic block 1, PRED Blocks: ENTRY (fallthru), SUCC Blocks: EXIT (fallthru)
;; SI Registers: r60, r20, r61, r0, r58
;; Address Registers: r20

r61 = *(r20 - 4)
r60 = *(r60 - 8) + r61 || clobber r17
*(r20 - 12) = r60
clobber r0
clobber r58
use r0

;; End of basic block 1


Back to the Main Page