Hi,

I got a dump of sha.c.27.flow2 from gcc 3.4.1. I don't quite
understand the LOG_LINKS of insn 498. LOG_LINKS in insn 498 shows that
it has a data dependence (a read after write dependence) with insn 3.
Why is it so? I don't see any dependence between "mov r14 r4" and
"addi r3, r4, 28". The bottom is the whole dump of the basic block.

(insn 3 4 11 0 (set (reg/v/f:SI 14 r14 [orig:46 sha_info ] [46])
        (reg:SI 4 r4 [ sha_info ])) 8 {movsi_internal} (nil)
    (expr_list:REG_DEAD (reg:SI 4 r4 [ sha_info ])
        (nil)))

........

(insn 498 375 560 0 (set (reg/f:SI 3 r3 [235])
        (plus:SI (reg/v/f:SI 14 r14 [orig:46 sha_info ] [46])
            (const_int 28 [0x1c]))) 20 {addsi3} (insn_list 3 (nil))
    (nil))





;; Start of basic block 0, registers live: 4 [r4] 16 [r16] 17 [r17] 18
[r18] 19 [r19] 27 [sp] 31 [ra]
(note 289 2 597 0 [bb 0] NOTE_INSN_BASIC_BLOCK)

(insn/f 597 289 598 0 (set:SI (reg/f:SI 27 sp)
        (plus:SI (reg/f:SI 27 sp)
            (const_int -336 [0xfffffeb0]))) -1 (nil)
    (nil))

(insn/f 598 597 599 0 (set:SI (mem:SI (plus:SI (reg/f:SI 27 sp)
                (const_int 332 [0x14c])) [0 S4 A32])
        (reg:SI 16 r16)) -1 (nil)
    (expr_list:REG_DEAD (reg:SI 16 r16)
        (nil)))

(insn/f 599 598 600 0 (set:SI (mem:SI (plus:SI (reg/f:SI 27 sp)
                (const_int 328 [0x148])) [0 S4 A32])
        (reg:SI 17 r17)) -1 (nil)
    (expr_list:REG_DEAD (reg:SI 17 r17)
        (nil)))

(insn/f 600 599 601 0 (set:SI (mem:SI (plus:SI (reg/f:SI 27 sp)
                (const_int 324 [0x144])) [0 S4 A32])
        (reg:SI 18 r18)) -1 (nil)
    (expr_list:REG_DEAD (reg:SI 18 r18)
        (nil)))

(insn/f 601 600 602 0 (set:SI (mem:SI (plus:SI (reg/f:SI 27 sp)
                (const_int 320 [0x140])) [0 S4 A32])
        (reg:SI 19 r19)) -1 (nil)
    (expr_list:REG_DEAD (reg:SI 19 r19)
        (nil)))

(note 602 601 4 0 NOTE_INSN_PROLOGUE_END)

(note 4 602 3 0 NOTE_INSN_FUNCTION_BEG)

(insn 3 4 11 0 (set (reg/v/f:SI 14 r14 [orig:46 sha_info ] [46])
        (reg:SI 4 r4 [ sha_info ])) 8 {movsi_internal} (nil)
    (expr_list:REG_DEAD (reg:SI 4 r4 [ sha_info ])
        (nil)))

(insn 11 3 375 0 (set (reg/v:SI 5 r5 [orig:47 i ] [47])
        (const_int 0 [0x0])) 8 {movsi_internal} (nil)
    (nil))

(insn 375 11 498 0 (set (reg/s:SI 6 r6 [54])
        (const_int 15 [0xf])) 8 {movsi_internal} (nil)
    (expr_list:REG_EQUIV (const_int 15 [0xf])
        (nil)))

(insn 498 375 560 0 (set (reg/f:SI 3 r3 [235])
        (plus:SI (reg/v/f:SI 14 r14 [orig:46 sha_info ] [46])
            (const_int 28 [0x1c]))) 20 {addsi3} (insn_list 3 (nil))
    (nil))

(insn 560 498 12 0 (set (reg/f:SI 4 r4 [266])
        (reg/f:SI 27 sp)) 8 {movsi_internal} (nil)
    (nil))
;; End of basic block 0, registers live:
 3 [r3] 4 [r4] 5 [r5] 6 [r6] 14 [r14] 27 [sp] 31 [ra]



Regards,
Haibin

Reply via email to