https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103353
Bug ID: 103353 Summary: Indefinite recursion when compiling -mmma requiring testcase w/ -maltivec Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: error-recovery, ice-on-invalid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: powerpc-*-linux-gnu g++-12.0.0-alpha20211114 snapshot (g:3057f1ab737582a9fb37a3fb967ed8bf3659f2f4) ICEs because of stack exhaustion when compiling gcc/testsuite/gcc.target/powerpc/pr101849.c w/ -maltivec: % powerpc-e300c3-linux-gnu-gcc-12.0.0 -maltivec -c gcc/testsuite/gcc.target/powerpc/pr101849.c gcc/testsuite/gcc.target/powerpc/pr101849.c: In function 'foo': gcc/testsuite/gcc.target/powerpc/pr101849.c:11:12: error: '__builtin_vsx_lxvp' requires the '-mmma' option 11 | dst[0] = __builtin_vsx_lxvp (0, (__vector_pair *)(void *)x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ powerpc-e300c3-linux-gnu-gcc-12.0.0: internal compiler error: Segmentation fault signal terminated program cc1 (gdb) where 10 #0 0x000000000093fc34 in ggc_internal_alloc (size=size@entry=24, f=f@entry=0x0, s=s@entry=0, n=n@entry=1) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/ggc-page.c:1278 #1 0x0000000000a8b94b in ggc_alloc<sequence_stack> () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/ggc.h:178 #2 start_sequence () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/emit-rtl.c:5476 #3 0x0000000000ac850b in emit_move_multi_word (mode=E_OOmode, x=<optimized out>, y=0x7ffff75fe978) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/expr.c:3889 #4 0x0000000000ac3d3f in emit_move_insn (x=x@entry=0x7ffff6511060, y=y@entry=0x7ffff75fe978) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/expr.c:4128 #5 0x0000000000a9ce04 in copy_to_reg (x=x@entry=0x7ffff75fe978) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/explow.c:625 #6 0x0000000000a88908 in operand_subword_force (op=op@entry=0x7ffff75fe978, offset=offset@entry=..., mode=mode@entry=E_OOmode) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/emit-rtl.c:1802 #7 0x0000000000ac861e in emit_move_multi_word (mode=E_OOmode, x=<optimized out>, y=0x7ffff75fe978) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/expr.c:3918 #8 0x0000000000ac3d3f in emit_move_insn (x=x@entry=0x7ffff6511018, y=y@entry=0x7ffff75fe978) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/expr.c:4128 #9 0x0000000000a9ce04 in copy_to_reg (x=x@entry=0x7ffff75fe978) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/explow.c:625 (More stack frames follow...) (gdb) where -10 #882893 0x00000000009d29e5 in cgraph_node::expand (this=0x7ffff77c8440) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/context.h:48 #882894 cgraph_node::expand (this=0x7ffff77c8440) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/cgraphunit.c:1781 #882895 0x00000000009d3df6 in output_in_order () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/cgraphunit.c:2135 #882896 symbol_table::compile (this=0x7ffff77c0000) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/cgraphunit.c:2353 #882897 symbol_table::compile (this=0x7ffff77c0000) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/cgraphunit.c:2267 #882898 0x00000000009d6d07 in symbol_table::finalize_compilation_unit (this=0x7ffff77c0000) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/cgraphunit.c:2537 #882899 0x0000000000e8b4f7 in compile_file () at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/toplev.c:479 #882900 0x000000000080d376 in do_compile (no_backend=false) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/toplev.c:2156 #882901 toplev::main (this=this@entry=0x7fffffffd9f6, argc=<optimized out>, argc@entry=12, argv=<optimized out>, argv@entry=0x7fffffffdb48) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/toplev.c:2308 #882902 0x000000000080f261 in main (argc=12, argv=0x7fffffffdb48) at /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-12.0.0_alpha20211114/work/gcc-12-20211114/gcc/main.c:39