r236491 - in /trunk/gcc: ChangeLog function.c s...

segher@gcc.gnu.org segher@gcc.gnu.org
Thu May 19 22:17:00 GMT 2016


Author: segher
Date: Thu May 19 22:17:53 2016
New Revision: 236491

URL: https://gcc.gnu.org/viewcvs?rev=236491&root=gcc&view=rev
Log:
function: Restructure *logue insertion

This patch restructures how the prologues/epilogues are inserted.  Sibcalls
that run without prologue are now handled in shrink-wrap.c; it communicates
what is already handled by setting the EDGE_IGNORE flag.  The
try_shrink_wrapping function then doesn't need to be passed the bb_flags
anymore.


	* function.c (make_epilogue_seq): Remove epilogue_end parameter.
	(thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
	code.  Ignore sibcalls on EDGE_IGNORE edges.
	* shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
	on edges for sibcalls that run without prologue.  The rest of the
	function is combined from...
	(fix_fake_fallthrough_edge): ... this, and ...
	(try_shrink_wrapping): ... a part of this.  Remove the bb_with
	function argument, make it a local variable.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/function.c
    trunk/gcc/shrink-wrap.c
    trunk/gcc/shrink-wrap.h



More information about the Gcc-cvs mailing list