https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59535

Zhenqiang Chen <zhenqiang.chen at arm dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |zhenqiang.chen at arm dot com

--- Comment #20 from Zhenqiang Chen <zhenqiang.chen at arm dot com> ---
Here is a small case to show lra introduces one more register copy (tested with
trunk and 4.9).

int isascii (int c)
{
  return c >= 0 && c < 128;
}
With options: -Os -mthumb -mcpu=cortex-m0, I got

isascii:
    mov    r3, #0
    mov    r2, #127
    mov    r1, r3   //???
    cmp    r2, r0
    adc    r1, r1, r3
    mov    r0, r1
    bx    lr

With options: -Os -mthumb -mcpu=cortex-m0 -mno-lra, I got

isascii:
    mov    r2, #127
    mov    r3, #0
    cmp    r2, r0
    adc    r3, r3, r3
    mov    r0, r3
    bx    lr

Reply via email to