From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1012) id B9BCD3857C4F; Thu, 26 Nov 2020 00:58:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B9BCD3857C4F MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Vladimir Makarov To: gcc-cvs@gcc.gnu.org Subject: [gcc r11-5395] [PR97983] LRA: Use the right emit func for putting insn in the destination BB. X-Act-Checkin: gcc X-Git-Author: Vladimir N. Makarov X-Git-Refname: refs/heads/master X-Git-Oldrev: 360258daf5d8d56fa4e1707aef27028546039401 X-Git-Newrev: a02e304245b5181d0f56adab0756719d876b0c58 Message-Id: <20201126005810.B9BCD3857C4F@sourceware.org> Date: Thu, 26 Nov 2020 00:58:10 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Nov 2020 00:58:10 -0000 https://gcc.gnu.org/g:a02e304245b5181d0f56adab0756719d876b0c58 commit r11-5395-ga02e304245b5181d0f56adab0756719d876b0c58 Author: Vladimir N. Makarov Date: Wed Nov 25 17:06:13 2020 -0500 [PR97983] LRA: Use the right emit func for putting insn in the destination BB. gcc/ 2020-11-25 Vladimir Makarov PR bootstrap/97983 * lra.c (lra_process_new_insns): Use emit_insn_before_noloc or emit_insn_after_noloc with the destination BB. Diff: --- gcc/lra.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gcc/lra.c b/gcc/lra.c index 4ec0f466376..a79213e32e0 100644 --- a/gcc/lra.c +++ b/gcc/lra.c @@ -1908,13 +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; 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. */ - if (curr == NULL) + without actual insns. */ + if (tmp == NULL) continue; start_sequence (); for (curr = after; curr != NULL_RTX; curr = NEXT_INSN (curr)) @@ -1927,7 +1923,11 @@ lra_process_new_insns (rtx_insn *insn, rtx_insn *before, rtx_insn *after, e->dest->index); dump_rtl_slim (lra_dump_file, copy, NULL, -1, 0); } - emit_insn_before (copy, tmp); + /* Use the right emit func for setting up BB_END/BB_HEAD: */ + if (BB_END (e->dest) == PREV_INSN (tmp)) + emit_insn_after_noloc (copy, PREV_INSN (tmp), e->dest); + else + emit_insn_before_noloc (copy, tmp, e->dest); push_insns (last, PREV_INSN (copy)); setup_sp_offset (copy, last); /* We can ignore BB live info here as it and reg notes