https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69124
--- Comment #11 from Mikael Pettersson <mikpelinux at gmail dot com> --- (In reply to ktkachov from comment #9) > So I did a bisection between 4.9 and 5. > The offending commit is r217624: > Author: vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> > Date: Sun Nov 16 05:00:30 2014 +0000 > > 2014-11-15 Vladimir Makarov <vmaka...@redhat.com> > > * lra-remat.c (cand_transf_func): Process regno for > rematerialization too. > * lra.c (lra): Switch on rematerialization pass. > > i.e. when the LRA rematiralisation pass was turned on. Strange, my bisect identified r217588 as the culprit, although it also talks about lra materialization: 2014-11-14 Vladimir Makarov <vmaka...@redhat.com> * lra-int.h (lra_create_live_ranges): Add parameter. * lra-lives.c (temp_bitmap): Move higher. (initiate_live_solver): Move temp_bitmap initialization into lra_live_ranges_init. (finish_live_solver): Move temp_bitmap clearing into live_ranges_finish. (process_bb_lives): Add parameter. Use it to control live info update and dead insn elimination. Pass it to mark_regno_live and mark_regno_dead. (lra_create_live_ranges): Add parameter. Pass it to process_bb_lives. (lra_live_ranges_init, lra_live_ranges_finish): See changes in initiate_live_solver and finish_live_solver. * lra-remat.c (do_remat): Process insn non-operand hard regs too. Use temp_bitmap to update avail_cands. * lra.c (lra): Pass new parameter to lra_create_live_ranges. Move check with lra_need_for_spill_p after live range pass. Switch on rematerialization pass.