https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63384
--- Comment #1 from Andi Kleen <andi-gcc at firstfloor dot org> --- With a newer compiler version gcc version 5.0.0 20140926 (experimental) (GCC) the test case doesn't crash anymore, but just runs very very long. I killed it after 20s. This happens with the following two options: g++50 matrix.i -o outfile -O2 -fvar-tracking-assignments-toggle -fselective-scheduling2 The overhead is mostly in the scheduler: - sched_analyze_insn(deps_desc*, rtx_def*, rtx_insn*) ▒ - 99.39% deps_analyze_insn(deps_desc*, rtx_insn*) ▒ tick_check_p(_expr*, deps_desc*, _fence*) ▒ fill_insns(_fence*, int, _list_node***) ▒ sel_sched_region_2(int) ▒ sel_sched_region(int) ▒ run_selective_scheduling() ▒ (anonymous namespace)::pass_sched2::execute(function*) ▒ execute_one_pass(opt_pass*) ▒ execute_pass_list_1(opt_pass*) ▒ execute_pass_list_1(opt_pass*) ▒ execute_pass_list_1(opt_pass*) ▒ execute_pass_list(function*, opt_pass*) ▒ cgraph_node::expand() ▒ symbol_table::compile() ▒ symbol_table::finalize_compilation_unit() ▒ cp_write_global_declarations() ▒ compile_file() ▒ toplev_main(int, char**) ▒ __libc_start_main ▒ + 0.61% tick_check_p(_expr*, deps_desc*, _fence*) sched_analyze_insn(deps_desc*, rtx_def*, rtx_insn*) │ │ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) 12.84 │ 748: add $0x1,%r13d 0.07 │ add $0x30,%r14 │ cmp $0x4d,%r13d │ ↓ je 7e5 │ if (TEST_HARD_REG_BIT (implicit_reg_pending_uses, i)) 0.06 │ 75a: mov %r13d,%eax 12.45 │ shr $0x6,%eax 0.17 │ mov 0x1828100(,%rax,8),%rax 6.06 │ bt %r13,%rax 6.21 │ ↑ jae 748 │ {