+2017-09-16 Jakub Jelinek <jakub@redhat.com>
+
+ Backported from mainline
+ 2017-08-08 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/81766
+ * function.c (thread_prologue_and_epilogue_insns): Restore
+ behavior of always calling find_many_sub_basic_blocks on
+ the inserted prologue.
+
+ 2017-08-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/79499
+ * function.c (thread_prologue_and_epilogue_insns): Determine blocks
+ for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
+ of first NONDEBUG_INSN_P in each of the split_prologue_seq and
+ prologue_seq sequences - if any.
+
2017-09-15 Martin Liska <mliska@suse.cz>
Backport from mainline
try_shrink_wrapping (&entry_edge, orig_entry_edge, &bb_flags, prologue_seq);
#endif
+ rtx_insn *split_prologue_insn = split_prologue_seq;
if (split_prologue_seq != NULL_RTX)
{
+ while (split_prologue_insn && !NONDEBUG_INSN_P (split_prologue_insn))
+ split_prologue_insn = NEXT_INSN (split_prologue_insn);
insert_insn_on_edge (split_prologue_seq, orig_entry_edge);
inserted = true;
}
+ rtx_insn *prologue_insn = prologue_seq;
if (prologue_seq != NULL_RTX)
{
+ while (prologue_insn && !NONDEBUG_INSN_P (prologue_insn))
+ prologue_insn = NEXT_INSN (prologue_insn);
insert_insn_on_edge (prologue_seq, entry_edge);
inserted = true;
}
commit_edge_insertions ();
/* Look for basic blocks within the prologue insns. */
+ if (split_prologue_insn
+ && BLOCK_FOR_INSN (split_prologue_insn) == NULL)
+ split_prologue_insn = NULL;
+ if (prologue_insn
+ && BLOCK_FOR_INSN (prologue_insn) == NULL)
+ prologue_insn = NULL;
blocks = sbitmap_alloc (last_basic_block_for_fn (cfun));
bitmap_clear (blocks);
+ if (split_prologue_insn)
+ bitmap_set_bit (blocks,
+ BLOCK_FOR_INSN (split_prologue_insn)->index);
+ if (prologue_insn)
+ bitmap_set_bit (blocks, BLOCK_FOR_INSN (prologue_insn)->index);
bitmap_set_bit (blocks, entry_edge->dest->index);
bitmap_set_bit (blocks, orig_entry_edge->dest->index);
find_many_sub_basic_blocks (blocks);
2017-09-16 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
+ 2017-08-08 Richard Biener <rguenther@suse.de>
+
+ PR middle-end/81766
+ * gcc.target/i386/pr81766.c: New testcase.
+
+ 2017-08-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/79499
+ * gcc.dg/pr79499.c: New test.
+
2017-06-21 Jakub Jelinek <jakub@redhat.com>
PR c++/81154