public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/114800] New: redundant set-zero when initiate a struct
@ 2024-04-22  8:27 absoler at smail dot nju.edu.cn
  2024-04-22  9:10 ` [Bug rtl-optimization/114800] " xry111 at gcc dot gnu.org
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: absoler at smail dot nju.edu.cn @ 2024-04-22  8:27 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 114800
           Summary: redundant set-zero when initiate a struct
           Product: gcc
           Version: 13.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: absoler at smail dot nju.edu.cn
  Target Milestone: ---

I found a weird case that
```
struct thresh_restart {
        int             *f0;
        int                     f1;
        int                     f2;
        int                     f3;
};

int arr[10];
void __attribute__((noinline)) foo(struct thresh_restart *p) {
    arr[0] = p->f3;
    arr[1] = p->f1;
}

void func(int *b) {
    struct thresh_restart tr = {
        .f0 = b,
        .f1 = 1,
        .f2     = 2,
        .f3     = 3,
    };
    foo(&tr);
}

```

such code is compiled as: (gcc-13.2.0 -O2, regression [11/12/13/trunk])
https://godbolt.org/z/rb4o6xc7E
```
func(int*):
 sub    $0x28,%rsp
 pxor   %xmm0,%xmm0
 mov    %rsp,%rdi
 movaps %xmm0,(%rsp)
 movq   $0x0,0x10(%rsp)   # redundancy
 movl   $0x1,0x8(%rsp)
 movl   $0x3,0x10(%rsp)
 call   401120 <foo(thresh_restart*)>
 add    $0x28,%rsp
 ret
```

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-04-22 23:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-22  8:27 [Bug rtl-optimization/114800] New: redundant set-zero when initiate a struct absoler at smail dot nju.edu.cn
2024-04-22  9:10 ` [Bug rtl-optimization/114800] " xry111 at gcc dot gnu.org
2024-04-22 23:33 ` [Bug tree-optimization/114800] " pinskia at gcc dot gnu.org
2024-04-22 23:35 ` [Bug tree-optimization/114800] DSE does not remove set-zero which is partial redundant pinskia at gcc dot gnu.org
2024-04-22 23:40 ` [Bug tree-optimization/114800] DSE does not remove set-zero which is partial redundant with respect to mod-ref pinskia at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).