https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66334
--- Comment #4 from H.J. Lu <hjl.tools at gmail dot com> --- This seems to work: diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c index 085411e..a0c6171 100644 --- a/gcc/lra-lives.c +++ b/gcc/lra-lives.c @@ -979,8 +979,7 @@ process_bb_lives (basic_block bb, int &curr_point, bool dead_insn_p) allocate such regs in this case. */ if (!cfun->has_nonlocal_label && bb_has_abnormal_call_pred (bb)) for (px = 0; px < FIRST_PSEUDO_REGISTER; px++) - if (call_used_regs[px]) - make_hard_regno_born (px, false); + make_hard_regno_born (px, false); } bool live_change_p = false; Vladimir, what is the correct fix?