On Tue, May 17, 2016 at 01:09:11AM +0000, Segher Boessenkool wrote:
> 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.

> 2016-05-16  Segher Boessenkool  <seg...@kernel.crashing.org>
> 
>       * 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.

As promised in the 1/3 subthread, I looked at the difference of building
Linux with and without (only) this patch.  With the 24 (of 30) targets
that build, I saw no generated code differences.  There also are no
testsuite regressions on powerpc, powerpc64, powerpc64le, or x86_64.


Segher

Reply via email to