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

            Bug ID: 120214
           Summary: REG_RETURNED Does not always work for stack addresses
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---
            Target: aarch64 arm

Created attachment 61400
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61400&action=edit
testcase

Take the testcase in the attachment.

Compile with -O2 on aarch64 or arm (for some reason RISCV works).

You should get:
```
bl memset
bl doStuff
```

But currently we get:
```
        add     x0, sp, 16
        stp     x29, x30, [sp]
        .cfi_offset 29, -4128
        .cfi_offset 30, -4120
        mov     x29, sp
        bl      memset
        add     x0, sp, 16
        bl      doStuff
``

Reply via email to