https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116564
Alex Coplan <acoplan at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |acoplan at gcc dot gnu.org --- Comment #1 from Alex Coplan <acoplan at gcc dot gnu.org> --- Looks like it's spinning running some DCE right at the start of combine: #10 0x0000000003068ab0 in mark_insn (insn=0xfffff4fd3880, fast=true) at /home/alecop01/toolchain/src/gcc/gcc/dce.cc:227 #11 0x000000000306b034 in dce_process_block (bb=0xfffff50220c0, redo_out=false, au=0x4774cd8, global_debug=0xffffffffea08) at /home/alecop01/toolchain/src/gcc/gcc/dce.cc:1035 #12 0x000000000306b41c in fast_dce (word_level=false) at /home/alecop01/toolchain/src/gcc/gcc/dce.cc:1128 #13 0x000000000306b618 in rest_of_handle_fast_dce () at /home/alecop01/toolchain/src/gcc/gcc/dce.cc:1197 #14 0x000000000306b6d4 in run_fast_df_dce () at /home/alecop01/toolchain/src/gcc/gcc/dce.cc:1245 #15 0x0000000001158380 in df_lr_dce_finalize (all_blocks=0x466c6c0) at /home/alecop01/toolchain/src/gcc/gcc/df-problems.cc:1252 #16 0x0000000001151bd8 in df_analyze_problem (dflow=0x4519c00, blocks_to_consider=0x466c6c0, postorder=0x446f9a0, n_blocks=5) at /home/alecop01/toolchain/src/gcc/gcc/df-core.cc:1191 #17 0x0000000001151d2c in df_analyze_1 () at /home/alecop01/toolchain/src/gcc/gcc/df-core.cc:1236 #18 0x0000000001152180 in df_analyze () at /home/alecop01/toolchain/src/gcc/gcc/df-core.cc:1306 #19 0x00000000030479b0 in rest_of_handle_combine () at /home/alecop01/toolchain/src/gcc/gcc/combine.cc:15127 #20 0x0000000003047ac4 in (anonymous namespace)::pass_combine::execute (this=0x43b35a0) at /home/alecop01/toolchain/src/gcc/gcc/combine.cc:15177 the dump file shows the following: Finding needed instructions: Adding insn 17 to worklist Adding insn 10 to worklist Adding insn 8 to worklist Finished finding needed instructions: processing block 4 lr out = 29 [x29] 31 [sp] 64 [sfp] 65 [ap] processing block 3 lr out = 29 [x29] 31 [sp] 64 [sfp] 65 [ap] 101 104 Adding insn 16 to worklist Adding insn 14 to worklist Adding insn 13 to worklist processing block 2 lr out = 29 [x29] 31 [sp] 64 [sfp] 65 [ap] 101 Adding insn 3 to worklist DCE: Deleting insn 42 deleting insn with uid = 42. DCE: Deleting insn 40 deleting insn with uid = 40. DCE: Deleting insn 39 deleting insn with uid = 39. DCE: Deleting insn 37 deleting insn with uid = 37. df_worklist_dataflow_doublequeue: n_basic_blocks 5 n_edges 5 count 5 ( 1) Finding needed instructions: Adding insn 17 to worklist Adding insn 10 to worklist Adding insn 8 to worklist Finished finding needed instructions: processing block 4 lr out = 29 [x29] 31 [sp] 64 [sfp] 65 [ap] processing block 3 lr out = 29 [x29] 31 [sp] 64 [sfp] 65 [ap] 101 104 Adding insn 16 to worklist Adding insn 14 to worklist Adding insn 13 to worklist processing block 2 lr out = 29 [x29] 31 [sp] 64 [sfp] 65 [ap] 101 Adding insn 3 to worklist df_worklist_dataflow_doublequeue: n_basic_blocks 5 n_edges 5 count 5 ( 1) Finding needed instructions: Adding insn 17 to worklist Adding insn 10 to worklist Adding insn 8 to worklist Finished finding needed instructions: processing block 4 lr out = 29 [x29] 31 [sp] 64 [sfp] 65 [ap] processing block 3 lr out = 29 [x29] 31 [sp] 64 [sfp] 65 [ap] 101 104 Adding insn 16 to worklist Adding insn 14 to worklist Adding insn 13 to worklist and it just seems to repeat adding insns {17,10,8}, then {16,14,13}, then 3.