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

            Bug ID: 121543
           Summary: ICE in extract_insn, at recog.cc:2882 on
                    riscv64-linux-gnu with i686-linux-gnu host
           Product: gcc
           Version: 15.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: doko at gcc dot gnu.org
  Target Milestone: ---

Created attachment 62118
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=62118&action=edit
preprocessed source

seen with the gcc-15 branch 20250812 targeting riscv64-linux-gnu with a
i686-linux-gnu host. Using a 64bit host doesn't show this issue:

building with -march=rv64gc also doesn't show this issue.

building libbacktrace/dwarf.c

/home/packages/cross/15/u/gcc-cross/gcc/build/./gcc/xgcc
-B/home/packages/cross/15/u/gcc-cross/gcc/build/./
gcc/ -B/usr/riscv64-linux-gnu/bin/ -B/usr/riscv64-linux-gnu/lib/ -isystem
/usr/riscv64-linux-gnu/include -isystem /usr/riscv64
-linux-gnu/sys-include -isystem
/home/packages/cross/15/u/gcc-cross/gcc/build/sys-include -DHAVE_CONFIG_H -I.
-I../../../src/l
ibbacktrace -I ../../../src/libbacktrace/../include -I
../../../src/libbacktrace/../libgcc -I ../libgcc -funwind-tables -frand
om-seed=dwarf.lo -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -Wmissing-format-att
ribute -Wcast-qual -Wno-attributes -Wpointer-arith -fno-omit-frame-pointer -c
../../../src/libbacktrace/dwarf.c  -fPIC -DPIC -
o .libs/dwarf.o

../../../src/libbacktrace/dwarf.c: In function 'is_highest_address':
../../../src/libbacktrace/dwarf.c:619:1: error: unrecognizable insn:
  619 | }
      | ^
(insn 80 79 81 12 (set (reg:DI 183)
        (and:DI (reg:DI 185)
            (const_int 2147483647 [0x7fffffff])))
"../../../src/libbacktrace/dwarf.c":613:22 -1
     (expr_list:REG_EQUAL (const_int -4294967295 [0xffffffff00000001])
        (nil)))
during RTL pass: vregs
../../../src/libbacktrace/dwarf.c:619:1: internal compiler error: in
extract_insn, at recog.cc:2882
0xa748b83 internal_error(char const*, ...)
        ../../src/gcc/diagnostic-global-context.cc:517
0x86374fb fancy_abort(char const*, int, char const*)
        ../../src/gcc/diagnostic.cc:1749
0x8601148 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../src/gcc/rtl-error.cc:108
0x8601177 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
        ../../src/gcc/rtl-error.cc:116
0x8600561 extract_insn(rtx_insn*)
        ../../src/gcc/recog.cc:2882
0x896c3b8 instantiate_virtual_regs_in_insn
        ../../src/gcc/function.cc:1612
0x896c3b8 instantiate_virtual_regs
        ../../src/gcc/function.cc:1995
0x896c3b8 execute
        ../../src/gcc/function.cc:2042
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.

GCC is configured with

         --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2,cobol
         --prefix=/usr
         --with-gcc-major-version-only
         --program-suffix=-15
         --enable-shared
         --enable-linker-build-id
         --libexecdir=/usr/libexec
         --without-included-gettext
         --enable-threads=posix
         --libdir=/usr/lib
         --enable-nls
         --with-sysroot=/
         --enable-clocale=gnu
         --enable-libstdcxx-debug
         --enable-libstdcxx-time=yes
         --with-default-libstdcxx-abi=new
         --enable-libstdcxx-backtrace
         --enable-gnu-unique-object
         --disable-libquadmath
         --disable-libquadmath-support
         --enable-plugin
         --enable-default-pie
         --with-system-zlib
         --enable-libphobos-checking=release
         --without-target-system-zlib
         --enable-multiarch
         --disable-werror
         --disable-multilib
         --with-abi=lp64d
        
--with-arch=rv64i_m_a_f_d_c_b_v_zic64b_zicbom_zicbop_zicboz_ziccamoa_ziccif_zicclsm_ziccrse_zicntr_zicond_zicsr_zifencei_zihintntl_zihintpause_zihpm_zimop_zmmul_za64rs_zaamo_zalrsc_zawrs_zfa_zfhmin_zca_zcb_zcd_zcmop_zba_zbb_zbs_zkt_zvbb_zve32f_zve32x_zve64d_zve64f_zve64x_zvfhmin_zvkb_zvkt_zvl128b_zvl32b_zvl64b_supm
         --enable-checking=release
         --build=i686-linux-gnu
         --host=i686-linux-gnu
         --target=riscv64-linux-gnu
         --program-prefix=riscv64-linux-gnu-
         --includedir=/usr/riscv64-linux-gnu/include


cvise 2.11 isn't able to reduce, extending the source beyond the initial size.

[...]
00:07:57 INFO (31.3%, 156714 bytes, 1278 lines)
00:08:02 INFO (-11.8%, 255018 bytes, 1278 lines)
00:08:02 INFO skipping the rest of the pass (huge file increasement 300%)
00:08:02 INFO ===< ClangPass::callexpr-to-value >===
00:08:13 INFO (-11.7%, 254960 bytes, 1278 lines)
00:08:20 INFO (-11.7%, 254884 bytes, 1278 lines)

extending in dwarf_fileline

for (ddata =  state->fileline_data;
          state->fileline_data !=              0                 ;
          ddata = ddata->next->next->next->next->next->next ...
some thousand times.

Reply via email to