This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 3/3] function: Restructure *logue insertion
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Jeff Law <law at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 19 May 2016 17:20:46 -0500
- Subject: Re: [PATCH 3/3] function: Restructure *logue insertion
- Authentication-results: sourceware.org; auth=none
- References: <213485283eede9da12b217737d95fc8f5c4be442 dot 1463428211 dot git dot segher at kernel dot crashing dot org> <70c67b8f39aca9cf574f617fbfce43b93e2560ff dot 1463428211 dot git dot segher at kernel dot crashing dot org> <5236cc2d-fb6b-351d-2c9f-1c1419ddcf8a at redhat dot com>
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