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:

Reply via email to