aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir N. Makarov <vmakarov@redhat.com>2020-11-25 17:06:13 -0500
committerVladimir N. Makarov <vmakarov@redhat.com>2020-11-25 19:58:01 -0500
commita02e304245b5181d0f56adab0756719d876b0c58 (patch)
treea62e4f3caac81a76049ee70f399d7bbd165d0031
parent360258daf5d8d56fa4e1707aef27028546039401 (diff)
downloadgcc-a02e304245b5181d0f56adab0756719d876b0c58.zip
gcc-a02e304245b5181d0f56adab0756719d876b0c58.tar.gz
gcc-a02e304245b5181d0f56adab0756719d876b0c58.tar.bz2
[PR97983] LRA: Use the right emit func for putting insn in the destination BB.
gcc/ 2020-11-25 Vladimir Makarov <vmakarov@redhat.com> PR bootstrap/97983 * lra.c (lra_process_new_insns): Use emit_insn_before_noloc or emit_insn_after_noloc with the destination BB.
-rw-r--r--gcc/lra.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/lra.c b/gcc/lra.c
index 4ec0f46..a79213e 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