https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104121
Bug ID: 104121 Summary: [12 Regression] v850: Infinite loop in find_reload_regno_insns() Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: sebastian.hu...@embedded-brains.de Target Milestone: --- Building the current master branch for the v850-rtems target results in an infinite loop in find_reload_regno_insns() while building libgcc: /tmp/sh/b-gcc-v850-rtems6/v850-rtems6/v850e2v3/libgcc > /tmp/sh/b-gcc-v850-rtems6/./gcc/xgcc -B/tmp/sh/b-gcc-v850-rtems6/./gcc/ -nostdinc -B/tmp/sh/b-gcc-v850-rtems6/v850-rtems6/newlib/ -isystem /tmp/sh/b-gcc-v850-rtems6/v850-rtems6/newlib/targ-include -isystem /home/EB/sebastian_h/src/gcc/newlib/libc/include -B/tmp/sh/i-v850-rtems6/v850-rtems6/bin/ -B/tmp/sh/i-v850-rtems6/v850-rtems6/lib/ -isystem /tmp/sh/i-v850-rtems6/v850-rtems6/include -isystem /tmp/sh/i-v850-rtems6/v850-rtems6/sys-include -g -O2 -mv850e2v3 -O2 -I/home/EB/sebastian_h/src/gcc/libgcc/../newlib/libc/sys/rtems/include -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -mno-app-regs -msmall-sld -Wa,-mwarn-signed-overflow -Wa,-mwarn-unsigned-overflow -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector -Dinhibit_libc -I. -I. -I../../.././gcc -I/home/EB/sebastian_h/src/gcc/libgcc -I/home/EB/sebastian_h/src/gcc/libgcc/. -I/home/EB/sebastian_h/src/gcc/libgcc/../gcc -I/home/EB/sebastian_h/src/gcc/libgcc/../include -DHAVE_CC_TLS -DUSE_EMUTLS -o _muldc3.o -MT _muldc3.o -MD -MP -MF _muldc3.dep -DL_muldc3 -c /home/EB/sebastian_h/src/gcc/libgcc/libgcc2.c -fvisibility=hidden -DHIDE_EXPORTS -wrapper gdb,--args GNU gdb (GDB; openSUSE Leap 15.2) 11.1 Copyright (C) 2021 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-suse-linux". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://bugs.opensuse.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /tmp/sh/b-gcc-v850-rtems6/./gcc/cc1... (gdb) r Starting program: /tmp/sh/b-gcc-v850-rtems6/gcc/cc1 -quiet -nostdinc -I /home/EB/sebastian_h/src/gcc/libgcc/../newlib/libc/sys/rtems/include -I . -I . -I ../../.././gcc -I /home/EB/sebastian_h/src/gcc/libgcc -I /home/EB/sebastian_h/src/gcc/libgcc/. -I /home/EB/sebastian_h/src/gcc/libgcc/../gcc -I /home/EB/sebastian_h/src/gcc/libgcc/../include -imultilib v850e2v3 -iprefix /tmp/sh/b-gcc-v850-rtems6/gcc/../lib64/gcc/v850-rtems6/12.0.1/ -isystem /tmp/sh/b-gcc-v850-rtems6/./gcc/include -isystem /tmp/sh/b-gcc-v850-rtems6/./gcc/include-fixed -MD _muldc3.d -MF _muldc3.dep -MP -MT _muldc3.o -D__v850e2v3__ -D IN_GCC -D CROSS_DIRECTORY_STRUCTURE -D IN_LIBGCC2 -D inhibit_libc -D HAVE_CC_TLS -D USE_EMUTLS -D L_muldc3 -D HIDE_EXPORTS -isystem /tmp/sh/b-gcc-v850-rtems6/v850-rtems6/newlib/targ-include -isystem /home/EB/sebastian_h/src/gcc/newlib/libc/include -isystem /tmp/sh/i-v850-rtems6/v850-rtems6/include -isystem /tmp/sh/i-v850-rtems6/v850-rtems6/sys-include -isystem ./include /home/EB/sebastian_h/src/gcc/libgcc/libgcc2.c -quiet -dumpbase _muldc3.c -dumpbase-ext .c -mv850e2v3 -mno-app-regs -msmall-sld -g -g -g -O2 -O2 -O2 -Wextra -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -fbuilding-libgcc -fno-stack-protector -fvisibility=hidden -o /tmp/ccXJQ7zz.s Missing separate debuginfos, use: zypper install glibc-debuginfo-2.26-lp152.26.12.1.x86_64 ^C Program received signal SIGINT, Interrupt. 0x0000000000982526 in find_reload_regno_insns (finish=<synthetic pointer>: <optimized out>, start=<synthetic pointer>: <optimized out>, regno=410) at /home/EB/sebastian_h/src/gcc/gcc/lra-assigns.cc:1740 1740 if (next_insn != NULL && second_insn == NULL) (gdb) n 1727 n != 1 && (prev_insn != NULL || next_insn != NULL); ) (gdb) 1729 if (prev_insn != NULL && first_insn == NULL) (gdb) 1740 if (next_insn != NULL && second_insn == NULL) (gdb) 1727 n != 1 && (prev_insn != NULL || next_insn != NULL); ) (gdb) 1729 if (prev_insn != NULL && first_insn == NULL) (gdb) 1740 if (next_insn != NULL && second_insn == NULL) (gdb) 1727 n != 1 && (prev_insn != NULL || next_insn != NULL); ) (gdb) 1729 if (prev_insn != NULL && first_insn == NULL) (gdb) 1740 if (next_insn != NULL && second_insn == NULL) (gdb) 1727 n != 1 && (prev_insn != NULL || next_insn != NULL); ) (gdb) 1729 if (prev_insn != NULL && first_insn == NULL) (gdb) bt #0 find_reload_regno_insns (finish=<synthetic pointer>: <optimized out>, start=<synthetic pointer>: <optimized out>, regno=410) at /home/EB/sebastian_h/src/gcc/gcc/lra-assigns.cc:1729 #1 lra_split_hard_reg_for () at /home/EB/sebastian_h/src/gcc/gcc/lra-assigns.cc:1794 #2 0x000000000097cbac in lra (f=<optimized out>) at /home/EB/sebastian_h/src/gcc/gcc/lra.cc:2412 #3 0x000000000092d422 in do_reload () at /home/EB/sebastian_h/src/gcc/gcc/ira.cc:5934 #4 (anonymous namespace)::pass_reload::execute (this=<optimized out>) at /home/EB/sebastian_h/src/gcc/gcc/ira.cc:6120 #5 0x0000000000a564d9 in execute_one_pass (pass=pass@entry=0x1ef3d40) at /home/EB/sebastian_h/src/gcc/gcc/passes.cc:2637 #6 0x0000000000a56df1 in execute_pass_list_1 (pass=0x1ef3d40) at /home/EB/sebastian_h/src/gcc/gcc/passes.cc:2737 #7 0x0000000000a56e03 in execute_pass_list_1 (pass=0x1ef2ba0) at /home/EB/sebastian_h/src/gcc/gcc/passes.cc:2738 #8 0x0000000000a56e45 in execute_pass_list (fn=<optimized out>, pass=<optimized out>) at /home/EB/sebastian_h/src/gcc/gcc/passes.cc:2748 #9 0x0000000000658fd9 in cgraph_node::expand (this=0x7ffff75d2330) at /home/EB/sebastian_h/src/gcc/gcc/cgraphunit.cc:1834 #10 0x000000000065a887 in expand_all_functions () at /home/EB/sebastian_h/src/gcc/gcc/cgraphunit.cc:1998 #11 symbol_table::compile (this=this@entry=0x7ffff74ea000) at /home/EB/sebastian_h/src/gcc/gcc/cgraphunit.cc:2348 #12 0x000000000065df70 in symbol_table::compile (this=0x7ffff74ea000) at /home/EB/sebastian_h/src/gcc/gcc/cgraphunit.cc:2532 #13 symbol_table::finalize_compilation_unit (this=0x7ffff74ea000) at /home/EB/sebastian_h/src/gcc/gcc/cgraphunit.cc:2529 #14 0x0000000000b4edde in compile_file () at /home/EB/sebastian_h/src/gcc/gcc/toplev.cc:479 #15 0x000000000045e2ce in do_compile (no_backend=false) at /home/EB/sebastian_h/src/gcc/gcc/toplev.cc:2158 #16 toplev::main (this=this@entry=0x7fffffffd11e, argc=<optimized out>, argc@entry=89, argv=<optimized out>, argv@entry=0x7fffffffd218) at /home/EB/sebastian_h/src/gcc/gcc/toplev.cc:2310 #17 0x00000000004606bb in main (argc=89, argv=0x7fffffffd218) at /home/EB/sebastian_h/src/gcc/gcc/main.cc:39