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

            Bug ID: 118946
           Summary: Missed optimization: GCC reserves stack space for
                    optimized-out variable
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: blubban at gmail dot com
  Target Milestone: ---

void* aaa();
void* bbb()
{
    void* ret = aaa();
    char buf[65536*16];
    __builtin_memset(buf, 0, 32);
    __builtin_memcpy(ret, buf, 32);
    return ret;
}

-O3


Expected:

bbb():
        sub     rsp, 8
        call    aaa()
        pxor    xmm0, xmm0
        movups  XMMWORD PTR [rax], xmm0
        movups  XMMWORD PTR [rax+16], xmm0
        add     rsp, 8
        ret


Actual:

bbb():
        sub     rsp, 1048584
        call    aaa()
        pxor    xmm0, xmm0
        movups  XMMWORD PTR [rax], xmm0
        movups  XMMWORD PTR [rax+16], xmm0
        add     rsp, 1048584
        ret


https://godbolt.org/z/aMvY5Pz8M

Reply via email to