This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug optimization/12630] [3.4 regression] Various unrecognizable insns and ICEs at -O3


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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



------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca  2003-10-16 20:46 -------
Subject: Re:  [3.4 regression] Various unrecognizable

> > (insn 6 4 7 0 ../../gcc/gcc/varasm.c:1902 (parallel [
> >             (set (mem/s:BLK (reg/f:SI 95) [102 d+0 S24 A32])
> > 		(mem/s:BLK (reg/v/f:SI 94 [ d ]) [102 d+0 S24 A32]))
> > 	    (clobber (reg/f:SI 95))
> > 	    (clobber (reg/f:SI 96 [ d ]))
> > 	    (clobber (reg:SI 97))
> > 	    (clobber (reg:SI 98))
> > 	    (clobber (reg:SI 99))
> > 	    (use (const_int 24 [0x18]))
> > 	    (use (const_int 4 [0x4]))
> > 	]) 72 {movstrsi_internal} (nil)
> >     (nil))
> > 
> > Insn 5 has been deleted.
> > 
> > I don't see any way to have an insn with an operand that's both an input
> > and clobbered.
> 
> This is not problem - you simply load the value into input operant and
> then don't expect it to stay there after the instruction.
> The transfromation above looks valid to me.  Reload ought to be able to
> manage the set operand match clobbers.

Possibly reload would fix this up but we didn't get that far.  The problem
as I see it is that there is no indication that SI 94 is clobbered and
has to die.  I think this is why there is an inconsistency in the death
notes and the ICE.  If SI 94 were used after this instruction, the
transformation wouldn't be valid.

Dave


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]