Hi Vladimir,
On Thu, 26 Oct 2023 at 16:00, Vladimir Makarov <[email protected]> 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