Commit cc1f86f3 by Segher Boessenkool Committed by Segher Boessenkool

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
parent 43c0068e
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment