Hi Vladimir,

On Thu, 26 Oct 2023 at 16:00, Vladimir Makarov <vmakarov....@gmail.com> wrote:
>
> This is the second attempt to improve RA cost calculation for pseudos
> with equivalences.  The patch explanation is in the log message.
>
> The patch was successfully bootstrapped and tested on x86-64, aarch64,
> and ppc64le.  The patch was also benchmarked on x86-64 spec2017.
> specfp2017 performance did not changed, specint2017 improved by 0.3%.
>

As reported by our CI, this patch causes a regression on arm:
FAIL: gcc.target/arm/eliminate.c scan-assembler-times r0,[\\t ]*sp 3


For this testcase, we used to generate:
        str     lr, [sp, #-4]!
        sub     sp, sp, #12
        add     r0, sp, #4
        bl      bar
        add     r0, sp, #4
        bl      bar
        add     r0, sp, #4
        bl      bar
        add     sp, sp, #12
        ldr     lr, [sp], #4
        bx      lr

After your patch, we generate:
        push    {r4, lr}
        sub     sp, sp, #8
        add     r4, sp, #4
        mov     r0, r4
        bl      bar
        mov     r0, r4
        bl      bar
        mov     r0, r4
        bl      bar
        add     sp, sp, #8
        pop     {r4, lr}
        bx      lr

which uses 1 more register and 1 more instruction.

Shall I file a bugzilla report for this?

Thanks,

Christophe

Reply via email to