function: A fix for my previous commit
It failed for targets that have an eh_return pattern with a splitter gated by epilogue_done. * function.c (thread_prologue_and_epilogue_insn): Move the "goto epilogue_done" one block later. From-SVN: r236441
This commit is contained in:
parent
43c0068e60
commit
cc1f86f3fd
2 changed files with 10 additions and 5 deletions
|
@ -1,3 +1,8 @@
|
|||
2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* function.c (thread_prologue_and_epilogue_insn): Move the
|
||||
"goto epilogue_done" one block later.
|
||||
|
||||
2016-05-19 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/70729
|
||||
|
|
|
@ -5960,11 +5960,6 @@ thread_prologue_and_epilogue_insns (void)
|
|||
|
||||
exit_fallthru_edge = find_fallthru_edge (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds);
|
||||
|
||||
/* If nothing falls through into the exit block, we don't need an
|
||||
epilogue. */
|
||||
if (exit_fallthru_edge == NULL)
|
||||
goto epilogue_done;
|
||||
|
||||
/* A small fib -- epilogue is not yet completed, but we wish to re-use
|
||||
this marker for the splits of EH_RETURN patterns, and nothing else
|
||||
uses the flag in the meantime. */
|
||||
|
@ -5994,6 +5989,11 @@ thread_prologue_and_epilogue_insns (void)
|
|||
emit_note_after (NOTE_INSN_EPILOGUE_BEG, prev);
|
||||
}
|
||||
|
||||
/* If nothing falls through into the exit block, we don't need an
|
||||
epilogue. */
|
||||
if (exit_fallthru_edge == NULL)
|
||||
goto epilogue_done;
|
||||
|
||||
if (epilogue_seq)
|
||||
{
|
||||
insert_insn_on_edge (epilogue_seq, exit_fallthru_edge);
|
||||
|
|
Loading…
Add table
Reference in a new issue