http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56451
Oleg Endo <olegendo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-11-25 Ever confirmed|0 |1 --- Comment #6 from Oleg Endo <olegendo at gcc dot gnu.org> --- Hm, I'm just poking around here, sorry if it's just useless noise ... In dbr_schedule, doing: fill_simple_delay_slots (1); fill_simple_delay_slots (0); fill_eager_delay_slots (); relax_delay_slots (first); or // fill_simple_delay_slots (1); fill_simple_delay_slots (0); fill_eager_delay_slots (); relax_delay_slots (first); -> produces bad code. fill_simple_delay_slots (1); fill_simple_delay_slots (0); // fill_eager_delay_slots (); relax_delay_slots (first); -> doesn't do anything to the code. // fill_simple_delay_slots (1); // fill_simple_delay_slots (0); fill_eager_delay_slots (); relax_delay_slots (first); or fill_simple_delay_slots (1); // fill_simple_delay_slots (0); fill_eager_delay_slots (); relax_delay_slots (first); -> results in the following code (looks OK): mov.l .L8,r1 cmp/ge r1,r5 bf/s .L11 mov #1,r0 cmp/gt r1,r5 bt/s .L6 mov #2,r0 mov.l .L9,r1 cmp/hs r1,r4 bt .L6 mov #1,r0 .L6: .align 1 .L11: rts nop .L10: