This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 3/3] function: Restructure *logue insertion


On Thu, May 19, 2016 at 04:00:22PM -0600, Jeff Law wrote:
> >	* 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.
> For some reason I found this patch awful to walk through.  In 
> retrospect, it might have been better break this down further. Not 
> because it's conceptually difficult to follow, but because the diffs 
> themselves are difficult to read.

Yeah, I should have realised that because the changelog was hard to write.

> I kept slicing out hunks when I could pair up the original code to its 
> new functional equivalent and hunks which were just "fluff" and kept 
> iterating until there was nothing left that seemed unreasonable.
> 
> OK for the trunk, but please watch closely for any fallout.

Thanks, and I will!


Segher


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]