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

Vladimir Makarov <vmakarov at gcc dot gnu.org> changed:

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

--- Comment #4 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
Honza, thank you for reporting this.  Fixing just the following code will not
solve the problem as LRA uses only equiv expression valid for the whole
function.

>           ret = valid_combine;
>           if (!MEM_READONLY_P (memref)
>               && !RTL_CONST_OR_PURE_CALL_P (insn))
>             return valid_none;
> 

By the way, the old reload pass still works on the test and producing the same
code as LRA currently, also reserving stack slot and using it around the call
instead of reload from a.

I've been working on this problem and I hope the fix will be ready on the next
week.

Reply via email to