Re: [PATCH] v2 shrink-wrap: Rewrite

2015-09-14 Thread Bernd Schmidt
* shrink-wrap.c (requires_stack_frame_p): Fix formatting. (dup_block_and_redirect): Delete function. (can_dup_for_shrink_wrapping): New function. (fix_fake_fallthrough_edge): New function. (try_shrink_wrapping): Rewrite function. (convert_to_simple_r

Re: [PATCH] v2 shrink-wrap: Rewrite

2015-09-11 Thread Pat Haugen
On 09/11/2015 05:40 PM, Segher Boessenkool wrote: Another issue I saw for PowerPC that prevented shrink-wrapping was the >case where non-volatile CR's are used somewhere in the function. This >causes a 'mfcr' to be generated in the prolog to save the non-volatile >CR's, which currently lists all

Re: [PATCH] v2 shrink-wrap: Rewrite

2015-09-11 Thread Segher Boessenkool
On Fri, Sep 11, 2015 at 05:06:47PM -0500, Pat Haugen wrote: > On 09/11/2015 02:49 PM, Segher Boessenkool wrote: > >On PowerPC, this enables shrink-wrapping of about 2%-3% more functions. > >I expected more, but in most cases this would help we cannot yet shrink- > >wrap because there are non-volati

Re: [PATCH] v2 shrink-wrap: Rewrite

2015-09-11 Thread Pat Haugen
On 09/11/2015 02:49 PM, Segher Boessenkool wrote: On PowerPC, this enables shrink-wrapping of about 2%-3% more functions. I expected more, but in most cases this would help we cannot yet shrink- wrap because there are non-volatile registers used, often in the first block already. I looked into sh

[PATCH] v2 shrink-wrap: Rewrite

2015-09-11 Thread Segher Boessenkool
[ v2: patch adjusted after Bernd's comments ] This patch rewrites the shrink-wrapping algorithm, allowing non-linear pieces of CFG to be duplicated for use without prologue instead of just linear pieces. On PowerPC, this enables shrink-wrapping of about 2%-3% more functions. I expected more, but