re PR target/81766 (ICE in maybe_add_or_update_dep_1, at sched-deps.c:924 caused by r250815)

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.

	* gcc.target/i386/pr81766.c: New testcase.

From-SVN: r250958
This commit is contained in:
Richard Biener 2017-08-08 13:21:12 +00:00 committed by Richard Biener
parent 77ed870464
commit 783f5cb4ca
4 changed files with 27 additions and 11 deletions

View File

@ -1,3 +1,10 @@
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

View File

@ -6082,17 +6082,16 @@ thread_prologue_and_epilogue_insns (void)
if (prologue_insn
&& BLOCK_FOR_INSN (prologue_insn) == NULL)
prologue_insn = NULL;
if (split_prologue_insn || prologue_insn)
{
auto_sbitmap blocks (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);
find_many_sub_basic_blocks (blocks);
}
auto_sbitmap blocks (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);
}
default_rtl_profile ();

View File

@ -1,3 +1,8 @@
2017-08-08 Richard Biener <rguenther@suse.de>
PR middle-end/81766
* gcc.target/i386/pr81766.c: New testcase.
2017-08-02 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/funcspec-56.inc (no_3dnowa): Properly

View File

@ -0,0 +1,5 @@
/* { dg-do compile } */
/* { dg-require-effective-target lp64 } */
/* { dg-options "-O2 -fPIE -mcmodel=large" } */
int main() { return 0; }