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