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

Oleg Endo <olegendo at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |olegendo at gcc dot gnu.org

--- Comment #7 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-07-11 20:56:00 
UTC ---
As of rev. 189427 this seems to have improved.  At least I could not spot
branch sequences such as

       ! basic block 1
        cmp/pl  r3
        mov.w   .L147,r1
        bt      .L3     <--- conditional branch C1
        mov     #0,r1
        bra     .L208   <--- Branch B1
        mov     r1,r3   <--- delay slot
.L3:
        ! basic block 2
        mov     r1,r3
.L208:
        mov.w   .L149,r2
        mov.w   .L150,r1
        cmp/gt  r1,r3
        bt      .L7


However, there are a couple of sequences such as:

    cmp/gt    r2,r1
    bt    .L47
    bra    .L43
    nop    ! 1189
.L47:
    mov.w    .L105,r0

which would be better as:

    cmp/gt    r2,r1
    bt    .L47
    bra    .L43
.L47:
    nop
    mov.w    .L105,r0

to utilize zero-displacement branches.

Reply via email to