http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48990
--- Comment #6 from Paul Koning <pkoning at gcc dot gnu.org> 2011-05-13 20:29:50 UTC --- Created attachment 24243 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24243 debug dump from the pass before machdep After some debugging, I see that the problem is that register 4 (A0) is marked dead in the prologue, and then afterwards is still used. This causes the delay slot fill logic to believe it can put li $4,32 into the delay slot -- because it appears not to be needed. So the question now is why that register is marked dead and still used.