https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107149
Bug ID: 107149 Summary: [13 Regression] ICE during RTL pass: dse2 - internal compiler error: in require, at machmode.h:297 Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: build, 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: ams at gcc dot gnu.org Target Milestone: --- Target: amdgcn-amdhsa Building current GCC mainline for AMDGCN, it fails when building libgfortran for several files with: during RTL pass: dse2 src/gcc-mainline/libgfortran/generated/maxloc1_16_i1.c: In function 'mmaxloc1_16_i1': src/gcc-mainline/libgfortran/generated/maxloc1_16_i1.c:460:1: internal compiler error: in require, at machmode.h:297 460 | } | ^ 0x672c50 opt_mode<scalar_int_mode>::require() const src/gcc-mainline/gcc/machmode.h:297 0x67474a opt_mode<scalar_int_mode>::require() const src/gcc-mainline/gcc/cselib.cc:1567 0x67474a void mode_iterator::get_known_wider<scalar_int_mode>(scalar_int_mode*) src/gcc-mainline/gcc/machmode.h:1124 0x67474a new_cselib_val src/gcc-mainline/gcc/cselib.cc:1579 0xabbc6b cselib_lookup_1 src/gcc-mainline/gcc/cselib.cc:2315 0xabbf4e cselib_lookup(rtx_def*, machine_mode, int, machine_mode) src/gcc-mainline/gcc/cselib.cc:2431 0xabeaf0 cselib_record_sets src/gcc-mainline/gcc/cselib.cc:2932 0xabfb59 cselib_process_insn(rtx_insn*) src/gcc-mainline/gcc/cselib.cc:3159 0x178d554 dse_step1 src/gcc-mainline/gcc/dse.cc:2771 0x178d554 rest_of_handle_dse src/gcc-mainline/gcc/dse.cc:3687 0x178d554 execute src/gcc-mainline/gcc/dse.cc:3760 Side note: I did spot in the log file the follow warning, which looks as if it could be related: src/gcc-mainline/gcc/expmed.cc: In function 'rtx_def* extract_bit_field_1(rtx, poly_uint64, poly_uint64, int, rtx, machine_mode, machine_mode, bool, bool, rtx_def**)': src/gcc-mainline/gcc/expmed.cc:1838:45: warning: '*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))' may be used uninitialized in this function [-Wmaybe-uninitialized] 1838 | rtx sub = extract_bit_field_as_subreg (mode1, op0, imode, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ 1839 | bitsize, bitnum); | ~~~~~~~~~~~~~~~~