public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/114793] New: wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs)
@ 2024-04-21 11:47 zhendong.su at inf dot ethz.ch
  2024-04-21 11:54 ` [Bug tree-optimization/114793] " zhendong.su at inf dot ethz.ch
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: zhendong.su at inf dot ethz.ch @ 2024-04-21 11:47 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 114793
           Summary: wrong code at -O1 with "-fschedule-insns2
                    -fselective-scheduling2" on x86_64-linux-gnu (the
                    generated code hangs)
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zhendong.su at inf dot ethz.ch
  Target Milestone: ---

It seems to be a recent regression as it does not reproduce with 13.2 and
earlier.

Compiler Explorer: https://godbolt.org/z/b3cc1MqP9

[538] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/14.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --disable-bootstrap
--enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk
--enable-sanitizers --enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.0.1 20240421 (experimental) (GCC) 
[539] % 
[539] % gcctk -O0 small.c
[540] % ./a.out
[541] % 
[541] % gcctk -O1 -fschedule-insns2 -fselective-scheduling2 small.c
[542] % timeout -s 9 10 ./a.out
Killed
[543] % 
[543] % cat small.c
int printf(const char *, ...);
volatile int a;
int b, c, d = 1, e, f;
int main() {
  int g = 1;
  for (; b; b -= d)
    g = e;
  for (; c < 2; c++) {
    if (g) {
      if (!d)
        printf("%d", f);
      continue;
    }
    a;
  }
  return 0;
}

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

* [Bug tree-optimization/114793] wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs)
  2024-04-21 11:47 [Bug tree-optimization/114793] New: wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs) zhendong.su at inf dot ethz.ch
@ 2024-04-21 11:54 ` zhendong.su at inf dot ethz.ch
  2024-04-21 15:43 ` hjl.tools at gmail dot com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: zhendong.su at inf dot ethz.ch @ 2024-04-21 11:54 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Zhendong Su <zhendong.su at inf dot ethz.ch> ---
The following reproducer is different, but perhaps is the same or related.

Compiler Explorer: https://godbolt.org/z/411rzMP1n

[588] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/14.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --disable-bootstrap
--enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk
--enable-sanitizers --enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.0.1 20240421 (experimental) (GCC) 
[589] % 
[589] % gcctk -O1 -fno-tree-forwprop -fselective-scheduling2 -fschedule-insns2
-fsel-sched-pipelining small.c
[590] % ./a.out
Aborted
[591] % 
[591] % cat small.c
int printf(const char *, ...);
int a, d, g, h;
volatile int b = 1;
static unsigned c = 1;
char e, f = 1, i;
static int j() {
  int k, l = g, m = 1 << l, n = -e, o = -1 % ((f && 1) ^ i), p = ~n - o;
  if (m) {
    int q, s, t, r = 1 % (((1 % f) & (~e | c)) ^ b);
    q = f;
    s = i;
    t = e;
    f = -b;
    k = f;
    d = -1;
  u:
    e = 0 & b;
    if (i > f)
      if (!b)
        goto v;
    if (d > t)
      __builtin_abort();
    if (b < 1 || !d || !c) {
      printf("%d\n", i);
      f = ((i | b) & (k - r)) << (e << ~t ^ q) << s;
      goto u;
    }
    if (i)
      f = q;
  v:
    i = n & o & l;
    printf("%ld\n", (long)t);
  }
  i = p;
  return h;
}
int main() {
  for (; a < 3; a++)
    j();
  return 0;
}

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

* [Bug tree-optimization/114793] wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs)
  2024-04-21 11:47 [Bug tree-optimization/114793] New: wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs) zhendong.su at inf dot ethz.ch
  2024-04-21 11:54 ` [Bug tree-optimization/114793] " zhendong.su at inf dot ethz.ch
@ 2024-04-21 15:43 ` hjl.tools at gmail dot com
  2024-04-21 16:03 ` [Bug tree-optimization/114793] [14 Regression] " hjl.tools at gmail dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: hjl.tools at gmail dot com @ 2024-04-21 15:43 UTC (permalink / raw)
  To: gcc-bugs

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

H.J. Lu <hjl.tools at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jh at suse dot cz
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2024-04-21
            Version|unknown                     |14.0

--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Zhendong Su from comment #0)
> It seems to be a recent regression as it does not reproduce with 13.2 and
> earlier.
> 
> Compiler Explorer: https://godbolt.org/z/b3cc1MqP9
> 
> [538] % gcctk -v
> Using built-in specs.
> COLLECT_GCC=gcctk
> COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/
> x86_64-pc-linux-gnu/14.0.1/lto-wrapper
> Target: x86_64-pc-linux-gnu
> Configured with: ../gcc-trunk/configure --disable-bootstrap
> --enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk
> --enable-sanitizers --enable-languages=c,c++ --disable-werror
> --enable-multilib
> Thread model: posix
> Supported LTO compression algorithms: zlib
> gcc version 14.0.1 20240421 (experimental) (GCC) 
> [539] % 
> [539] % gcctk -O0 small.c
> [540] % ./a.out
> [541] % 
> [541] % gcctk -O1 -fschedule-insns2 -fselective-scheduling2 small.c
> [542] % timeout -s 9 10 ./a.out
> Killed
> [543] % 
> [543] % cat small.c
> int printf(const char *, ...);
> volatile int a;
> int b, c, d = 1, e, f;
> int main() {
>   int g = 1;
>   for (; b; b -= d)
>     g = e;
>   for (; c < 2; c++) {
>     if (g) {
>       if (!d)
>         printf("%d", f);
>       continue;
>     }
>     a;
>   }
>   return 0;
> }

This is caused by r14-2712.

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

* [Bug tree-optimization/114793] [14 Regression] wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs)
  2024-04-21 11:47 [Bug tree-optimization/114793] New: wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs) zhendong.su at inf dot ethz.ch
  2024-04-21 11:54 ` [Bug tree-optimization/114793] " zhendong.su at inf dot ethz.ch
  2024-04-21 15:43 ` hjl.tools at gmail dot com
@ 2024-04-21 16:03 ` hjl.tools at gmail dot com
  2024-04-22  7:17 ` jakub at gcc dot gnu.org
  2024-05-07  7:45 ` [Bug tree-optimization/114793] [14/15 " rguenth at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: hjl.tools at gmail dot com @ 2024-04-21 16:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Zhendong Su from comment #1)
> The following reproducer is different, but perhaps is the same or related.
> 
> Compiler Explorer: https://godbolt.org/z/411rzMP1n
> 
> [588] % gcctk -v
> Using built-in specs.
> COLLECT_GCC=gcctk
> COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/
> x86_64-pc-linux-gnu/14.0.1/lto-wrapper
> Target: x86_64-pc-linux-gnu
> Configured with: ../gcc-trunk/configure --disable-bootstrap
> --enable-checking=yes --prefix=/local/suz-local/software/local/gcc-trunk
> --enable-sanitizers --enable-languages=c,c++ --disable-werror
> --enable-multilib
> Thread model: posix
> Supported LTO compression algorithms: zlib
> gcc version 14.0.1 20240421 (experimental) (GCC) 
> [589] % 
> [589] % gcctk -O1 -fno-tree-forwprop -fselective-scheduling2
> -fschedule-insns2 -fsel-sched-pipelining small.c
> [590] % ./a.out
> Aborted
> [591] % 
> [591] % cat small.c
> int printf(const char *, ...);
> int a, d, g, h;
> volatile int b = 1;
> static unsigned c = 1;
> char e, f = 1, i;
> static int j() {
>   int k, l = g, m = 1 << l, n = -e, o = -1 % ((f && 1) ^ i), p = ~n - o;
>   if (m) {
>     int q, s, t, r = 1 % (((1 % f) & (~e | c)) ^ b);
>     q = f;
>     s = i;
>     t = e;
>     f = -b;
>     k = f;
>     d = -1;
>   u:
>     e = 0 & b;
>     if (i > f)
>       if (!b)
>         goto v;
>     if (d > t)
>       __builtin_abort();
>     if (b < 1 || !d || !c) {
>       printf("%d\n", i);
>       f = ((i | b) & (k - r)) << (e << ~t ^ q) << s;
>       goto u;
>     }
>     if (i)
>       f = q;
>   v:
>     i = n & o & l;
>     printf("%ld\n", (long)t);
>   }
>   i = p;
>   return h;
> }
> int main() {
>   for (; a < 3; a++)
>     j();
>   return 0;
> }

This is caused by r14-2524.

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

* [Bug tree-optimization/114793] [14 Regression] wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs)
  2024-04-21 11:47 [Bug tree-optimization/114793] New: wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (2 preceding siblings ...)
  2024-04-21 16:03 ` [Bug tree-optimization/114793] [14 Regression] " hjl.tools at gmail dot com
@ 2024-04-22  7:17 ` jakub at gcc dot gnu.org
  2024-05-07  7:45 ` [Bug tree-optimization/114793] [14/15 " rguenth at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: jakub at gcc dot gnu.org @ 2024-04-22  7:17 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org
           Priority|P3                          |P2
   Target Milestone|---                         |14.0

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think sel-sched regressions don't need to be P1.

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

* [Bug tree-optimization/114793] [14/15 Regression] wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs)
  2024-04-21 11:47 [Bug tree-optimization/114793] New: wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (3 preceding siblings ...)
  2024-04-22  7:17 ` jakub at gcc dot gnu.org
@ 2024-05-07  7:45 ` rguenth at gcc dot gnu.org
  4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2024-05-07  7:45 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|14.0                        |14.2

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 14.1 is being released, retargeting bugs to GCC 14.2.

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

end of thread, other threads:[~2024-05-07  7:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-21 11:47 [Bug tree-optimization/114793] New: wrong code at -O1 with "-fschedule-insns2 -fselective-scheduling2" on x86_64-linux-gnu (the generated code hangs) zhendong.su at inf dot ethz.ch
2024-04-21 11:54 ` [Bug tree-optimization/114793] " zhendong.su at inf dot ethz.ch
2024-04-21 15:43 ` hjl.tools at gmail dot com
2024-04-21 16:03 ` [Bug tree-optimization/114793] [14 Regression] " hjl.tools at gmail dot com
2024-04-22  7:17 ` jakub at gcc dot gnu.org
2024-05-07  7:45 ` [Bug tree-optimization/114793] [14/15 " rguenth 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).