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

            Bug ID: 113771
           Summary: [14 Regression][GCN] ICE during GIMPLE pass: vect in
                    vect_transform_loop tree-vect-loop.cc:11969
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: burnus at gcc dot gnu.org
                CC: tnfchris at gcc dot gnu.org
  Target Milestone: ---
            Target: gcn

Still to be debugged further. I did work last week, i.e. it is a very recent
regression.

In-tree build of Newlib in the amdgcn-amdhsa build of GCC fails with -O2 (-O1
is okay):



during GIMPLE pass: vect
In file included from /home/tob/repos/gcc/newlib/libc/string/memset.c:29:
/home/tob/repos/gcc/newlib/libc/include/string.h: In function 'memset':
/home/tob/repos/gcc/newlib/libc/include/string.h:33:10: internal compiler
error: Segmentation fault
   33 | void *   memset (void *, int, size_t);
      |          ^~~~~~
0x102617f crash_signal
        /home/tob/repos/gcc/gcc/toplev.cc:317
0x7efe08c4123f ???
       
/usr/src/debug/glibc-2.39/signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x12d28fc gsi_prev(gimple_stmt_iterator*)
        /home/tob/repos/gcc/gcc/gimple-iterator.h:236
0x12d28fc move_early_exit_stmts
        /home/tob/repos/gcc/gcc/tree-vect-loop.cc:11804
0x12d28fc vect_transform_loop(_loop_vec_info*, gimple*)
        /home/tob/repos/gcc/gcc/tree-vect-loop.cc:11969
0x1314321 vect_transform_loops
        /home/tob/repos/gcc/gcc/tree-vectorizer.cc:1006
0x131492c try_vectorize_loop_1
        /home/tob/repos/gcc/gcc/tree-vectorizer.cc:1152
0x131492c try_vectorize_loop

* * *

In the debugger:

Program received signal SIGSEGV, Segmentation fault.
0x00000000012d28fc in gsi_prev (i=0x7fffffffc1a0) at
/home/tob/repos/gcc/gcc/gimple-iterator.h:236
236       gimple *prev = i->ptr->prev;


(gdb) p i->ptr
$1 = (gimple_seq_node) 0x0

11802         gimple_stmt_iterator stmt_gsi = gsi_for_stmt (stmt);
11803         gsi_move_before (&stmt_gsi, &dest_gsi);
11804         gsi_prev (&dest_gsi);


(gdb) p debug_gimple_stmt(stmt)
# .MEM_49 = VDEF <.MEM_81>
*s_72 = _1;

(gdb) p debug_gimple_stmt(*dest_gsi->seq)
# .MEM_49 = VDEF <.MEM_81>
*s_72 = _1;
$11 = void

(gdb) p debug_gimple_stmt(*stmt_gsi->seq)
# DEBUG BEGIN_STMT

(gdb) p debug_gimple_seq(stmt_gsi->ptr)
# DEBUG s => s_48
# DEBUG n => n_46
# DEBUG BEGIN_STMT
s.3_2 = (long unsigned int) s_48;
_3 = s.3_2 & 7;
if (_3 != 0)
$14 = void
(gdb) p debug_gimple_seq(dest_gsi->ptr)


(gdb) p debug_bb(stmt_gsi->bb)
<bb 5> [local count: 862990464]:
# DEBUG BEGIN_STMT
s_48 = s_72 + 1;
# DEBUG s => s_48
_1 = (char) c_22(D);
# DEBUG s => s_48
# DEBUG n => n_46
# DEBUG BEGIN_STMT
s.3_2 = (long unsigned int) s_48;
_3 = s.3_2 & 7;
if (_3 != 0)
  goto <bb 20>; [94.50%]
else
  goto <bb 41>; [5.50%]

$16 = void
(gdb) p debug_bb(dest_gsi->bb)
<bb 20> [local count: 815525989]:
*s_72 = _1;
goto <bb 3>; [100.00%]

Reply via email to