The following patch fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97933
The patch was successfully bootstrapped on x86-64 and s390x.
commit fb352136db34a7adbc7be6a1e4e90b56bc632ebd (HEAD -> master) Author: Vladimir N. Makarov <vmaka...@redhat.com> Date: Tue Nov 24 11:25:16 2020 -0500 [PR97933] LRA: find correctly last empty dest block. gcc/ 2020-11-24 Vladimir Makarov <vmaka...@redhat.com> PR bootstrap/97933 * lra.c (lra_process_new_insns): Stop on the first real insn after head of e->dest. diff --git a/gcc/lra.c b/gcc/lra.c index b318cfd7456..4ec0f466376 100644 --- a/gcc/lra.c +++ b/gcc/lra.c @@ -1908,11 +1908,9 @@ lra_process_new_insns (rtx_insn *insn, rtx_insn *before, rtx_insn *after, tmp = NEXT_INSN (tmp); if (NOTE_INSN_BASIC_BLOCK_P (tmp)) tmp = NEXT_INSN (tmp); - for (curr = tmp; - curr != NULL - && (!INSN_P (curr) || BLOCK_FOR_INSN (curr) == e->dest); - curr = NEXT_INSN (curr)) - ; + for (curr = tmp; curr != NULL; curr = NEXT_INSN (curr)) + if (INSN_P (curr)) + break; /* Do not put reload insns if it is the last BB without actual insns. In this case the reload insns can get null BB after emitting. */