https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116104
Bug ID: 116104 Summary: [15 Regression] GCN vs. "[rtl-optimization/116037] Explicitly track if a destination was skipped in ext-dce" Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: build, ice-checking Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: tschwinge at gcc dot gnu.org CC: ams at gcc dot gnu.org, law at gcc dot gnu.org Target Milestone: --- Target: GCN As of recent PR116037 commit r15-2275-g679086172b84be18c55fdbb9cda7e97806e7c083 "[rtl-optimization/116037] Explicitly track if a destination was skipped in ext-dce", '--target=amdgcn-amdhsa' ICEs during build of GCC target libraries. I can't tell if this is an issue in 'RTL pass: ext_dce' or in the GCN back end. (This isn't fixed by subsequent the commit r15-2321-g34fb0feca71f763b2fbe832548749666d34a4a76 "[PR rtl-optimization/116039] Fix life computation for promoted subregs".) during RTL pass: ext_dce [...]/source-gcc/libgcc/libgcc2.c: In function ‘__negti2’: [...]/source-gcc/libgcc/libgcc2.c:71:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:497 71 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52e15 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:497 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 0x1dfbb46 ext_dce_process_uses [...]/source-gcc/gcc/ext-dce.cc:679 0x1dfc825 ext_dce_process_bb [...]/source-gcc/gcc/ext-dce.cc:836 0x1dfc825 ext_dce_rd_transfer_n [...]/source-gcc/gcc/ext-dce.cc:978 0xcb6f5e df_worklist_propagate_backward [...]/source-gcc/gcc/df-core.cc:970 0xcb6f5e df_worklist_dataflow_doublequeue [...]/source-gcc/gcc/df-core.cc:1054 0xcb6f5e df_worklist_dataflow(dataflow*, bitmap_head*, int*, int) [...]/source-gcc/gcc/df-core.cc:1132 0x1dfcd67 ext_dce_execute() [...]/source-gcc/gcc/ext-dce.cc:1007 0x1dfd0fc execute [...]/source-gcc/gcc/ext-dce.cc:1047 during RTL pass: ext_dce [...]/source-gcc/libgcc/libgcc2.c: In function ‘__popcountti2’: [...]/source-gcc/libgcc/libgcc2.c:870:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:505 870 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52d63 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:505 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 [...] during RTL pass: ext_dce [...]/source-gcc/libgcc/libgcc2.c: In function ‘__udivti3’: [...]/source-gcc/libgcc/libgcc2.c:1301:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:497 1301 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52e15 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:497 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 [...] during RTL pass: ext_dce [...]/source-gcc/libgcc/libgcc2.c: In function ‘__udivmodti4’: [...]/source-gcc/libgcc/libgcc2.c:1205:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:497 1205 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52e15 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:497 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 [...] during RTL pass: ext_dce [...]/source-gcc/libgcc/config/gcn/lib2-vec_divmod.c: In function ‘__udivmodv64si4_aux’: [...]/source-gcc/libgcc/config/gcn/lib2-vec_divmod.c:52:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:505 52 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52d63 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:505 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 [...] during RTL pass: ext_dce [...]/source-gcc/libgcc/config/gcn/lib2-vec_divmod-qi.c: In function ‘__udivmodv64qi4_aux’: [...]/source-gcc/libgcc/config/gcn/lib2-vec_divmod-qi.c:52:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:505 52 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52d63 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:505 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 [...] during RTL pass: ext_dce [...]/source-gcc/libgcc/config/gcn/lib2-vec_divmod-hi.c: In function ‘__udivmodv64hi4_aux’: [...]/source-gcc/libgcc/config/gcn/lib2-vec_divmod-hi.c:52:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:505 52 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52d63 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:505 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 [...] during RTL pass: ext_dce [...]/source-gcc/libgcc/config/gcn/lib2-vec_divmod-di.c: In function ‘__divv64di3_aux’: [...]/source-gcc/libgcc/config/gcn/lib2-vec_divmod-di.c:89:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:505 89 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52d63 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:505 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 [...] during RTL pass: ext_dce [...]/source-gcc/libgcc/strub.c: In function ‘__strub_leave’: [...]/source-gcc/libgcc/strub.c:153:1: internal compiler error: RTL check: expected code 'const_int', have 'const_vector' in carry_backpropagate, at ext-dce.cc:497 153 | } | ^ 0x20f9815 internal_error(char const*, ...) [...]/source-gcc/gcc/diagnostic-global-context.cc:491 0x86460a rtl_check_failed_code1(rtx_def const*, rtx_code, char const*, int, char const*) [...]/source-gcc/gcc/rtl.cc:770 0xa52e15 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:497 0x1dfbb46 carry_backpropagate(unsigned long, rtx_code, rtx_def*) [...]/source-gcc/gcc/ext-dce.cc:659 [...]