[Bug rtl-optimization/110215] RA fails to allocate register when loop invariant lives across calls and eh

wwwhhhyyy333 at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Jun 27 06:00:44 GMT 2023


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

--- Comment #6 from Hongyu Wang <wwwhhhyyy333 at gmail dot com> ---
Thanks for the fix, now for the attached test, main loop will not have any
load. 

There is a remaining issue that the loop epilogue still contains load from
stack and constant pool

.L9:
        movslq  %edx, %rax
        movss   72(%rsp), %xmm5
        salq    $2, %rax
        leaq    (%rbx,%rax), %rcx
        movaps  %xmm5, %xmm1
        subss   (%rcx), %xmm1
        andps   .LC4(%rip), %xmm1
        movss   %xmm1, (%rcx)
        leal    1(%rdx), %ecx
        addss   %xmm1, %xmm0
        cmpl    %ecx, %r12d
        jle     .L8

IRA dump shows the pseudos does not have conflict but they still failed to be
allocated with register. This issue does not exist on aarch64.


More information about the Gcc-bugs mailing list