[Bug rtl-optimization/40086] [4.5 Regression]: cris-elf gfortran.dg/forall_1.f90 -O1 execution

hp at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed May 13 00:10:00 GMT 2009



------- Comment #11 from hp at gcc dot gnu dot org  2009-05-13 00:09 -------
Two insns above the assembly sequence for the delay-slot fill quoted above,
there used to be a "clear.d $r9".  That insn is moved into a delay-slot in the
first reorg_pass_number round by fill_simple_delay_slots (0).  As a dataflow
marker, the insn is replaced by a USE:
(insn 308 204 94 (use (insn/s 52 286 310 (set (reg:SI 9 r9 [orig:95 ivtmp.101 ]
[95])
                (const_int 0 [0x0])) 38 {*movsi_internal} (expr_list:REG_EQUAL
(const_int 0 [0x0])
                (nil)))) -1 (nil))

The bug seems to be that at the next relax_delay_slots (first) call, the USE
placeholder is removed for some reason.  The df live-regs info is then
incorrect and at the next (the last) round, when fill_eager_delay_slots () is
called, it does the invalid delay-slot filling quoted above.


-- 


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



More information about the Gcc-bugs mailing list