http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46391

--- Comment #3 from Roy Rosen <roy.1rosen at gmail dot com> 2010-11-11 08:03:57 
UTC ---
It happens also on i386 with ./cc1 -O3 a.c -fdump-rtl-all -funroll-loops
-fsched-verbose=8 -fschedule-insns:

In asmcons:

(insn 16 15 17 4 a.c:5 (set (reg:SI 72 [ vect_var_.26 ])
        (mem:SI (plus:SI (reg/v/f:SI 74 [ c ])
                (reg:SI 70 [ ivtmp.42 ])) [0 MEM[(char * restrict)vect_p.22]+0
S4 A32])) 50 {*movsi_internal} (nil))

(insn 17 16 134 4 a.c:5 (set (mem:SI (plus:SI (reg/v/f:SI 75 [ d ])
                (reg:SI 70 [ ivtmp.42 ])) [0 MEM[(char * restrict)vect_p.27]+0
S4 A32])
        (reg:SI 72 [ vect_var_.26 ])) 50 {*movsi_internal} (expr_list:REG_DEAD
(reg:SI 72 [ vect_var_.26 ])
        (nil)))

(insn 134 17 135 4 a.c:5 (set (reg:SI 82 [ vect_var_.26 ])
        (mem:SI (plus:SI (plus:SI (reg/v/f:SI 74 [ c ])
                    (reg:SI 70 [ ivtmp.42 ]))
                (const_int 4 [0x4])) [0 MEM[(char * restrict)vect_p.22]+0 S4
A32])) 50 {*movsi_internal} (nil))

and in sched1:

;;   ======================================================
;;   -- basic block 4 from 16 to 198 -- before reload
;;   ======================================================

;;   --------------- forward dependences: ------------ 

;;   --- Region Dependences --- b 4 bb 0 
;;      insn  code    bb   dep  prio  cost   reservation
;;      ----  ----    --   ---  ----  ----   -----------
;;       16    50     4     0    35     4   decodern,p2    : 198 196 195 185
175 165 155 145 135 17 
;;       17    50     4     1    31     1   decoder0,(p4+p3)    : 198 196 194
184 174 164 154 144 134 
;;      134    50     4     1    31     4   decodern,p2    : 198 196 195 185
175 165 155 145 135 
;;      135    50     4     2    27     1   decoder0,(p4+p3)    : 198 196 194
184 174 164 154 144  

There should not be any dependency between 17 (store) and 134 (load).
BTW, I failed building i386 from the current snapshot so I used an old one.
(../../gcc-4.6-20101106/gcc/config/i386/bdver1.md:528: unknown mode `V4DF'
../../gcc-4.6-20101106/gcc/config/i386/bdver1.md:528: following context is `0
"r          egister_operand")'
)

Reply via email to