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

--- Comment #1 from Zhendong Su <zhendong.su at inf dot ethz.ch> ---
Another reproducer with fewer flags (and affects 12.* and later).

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

[603] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/home/suz/suz-local/software/local/gcc-trunk/bin/../libexec/gcc/x86_64-pc-linux-gnu/14.0.0/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
--disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.0.0 20230624 (experimental) [master r14-924-gd709841ae0f] (GCC)
[604] %
[604] % gcctk -O3 -fsel-sched-pipelining -fschedule-insns
-fselective-scheduling2 -fPIC small.c
during RTL pass: sched2
small.c: In function ‘h’:
small.c:20:1: internal compiler error: in
av_set_could_be_blocked_by_bookkeeping_p, at sel-sched.cc:3609
   20 | }
      | ^
0x7d635a av_set_could_be_blocked_by_bookkeeping_p
        ../../gcc-trunk/gcc/sel-sched.cc:3609
0x7d635a code_motion_process_successors
        ../../gcc-trunk/gcc/sel-sched.cc:6386
0x7d635a code_motion_path_driver
        ../../gcc-trunk/gcc/sel-sched.cc:6608
0xf85b69 code_motion_process_successors
        ../../gcc-trunk/gcc/sel-sched.cc:6342
0xf85b69 code_motion_path_driver
        ../../gcc-trunk/gcc/sel-sched.cc:6608
0xf86c18 find_used_regs
        ../../gcc-trunk/gcc/sel-sched.cc:3272
0xf86c18 collect_unavailable_regs_from_bnds
        ../../gcc-trunk/gcc/sel-sched.cc:1586
0xf86c18 find_best_reg_for_expr
        ../../gcc-trunk/gcc/sel-sched.cc:1649
0xf8976c fill_vec_av_set
        ../../gcc-trunk/gcc/sel-sched.cc:3784
0xf8976c fill_ready_list
        ../../gcc-trunk/gcc/sel-sched.cc:4014
0xf8976c find_best_expr
        ../../gcc-trunk/gcc/sel-sched.cc:4374
0xf8976c fill_insns
        ../../gcc-trunk/gcc/sel-sched.cc:5535
0xf8976c schedule_on_fences
        ../../gcc-trunk/gcc/sel-sched.cc:7353
0xf8976c sel_sched_region_2
        ../../gcc-trunk/gcc/sel-sched.cc:7491
0xf8a928 sel_sched_region_1
        ../../gcc-trunk/gcc/sel-sched.cc:7533
0xf8bf46 sel_sched_region(int)
        ../../gcc-trunk/gcc/sel-sched.cc:7634
0xf8bf46 sel_sched_region(int)
        ../../gcc-trunk/gcc/sel-sched.cc:7619
0xf8c0e9 run_selective_scheduling()
        ../../gcc-trunk/gcc/sel-sched.cc:7720
0xf6d7ed rest_of_handle_sched2
        ../../gcc-trunk/gcc/sched-rgn.cc:3743
0xf6d7ed execute
        ../../gcc-trunk/gcc/sched-rgn.cc:3890
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
[605] %
[605] % cat small.c
static int a;
int b, c, d, g;
long e, f;
extern void l(char *);
void h() {
  char i;
  int j = 1 >> f / b;
 L:
  f = -(-(f % g || a) * (c && f | e));
  if (a > e)
    l("");
  if (f) {
    l("A");
    i = j / g;
  }
  if (a)
    goto L;
  d = i;
  a = 0;
}

Reply via email to