Hi,

On Fri, Jan 20, 2017 at 05:05:56PM +0000, Nick Clifton wrote:
>   I would like to close out PR 70681 by applying the patch below.  It
>   updates the XFAIL comments in the two affected tests, explaining why
>   the check for shrink-wrapping will fail.  There is nothing actually
>   wrong here.  The shrink wrapping optimization is working and the
>   targets are not broken, it is just that, for these particular test
>   cases, for these specific architectures (ARM, PPC), the unshrink-
>   wrapped code is actually smaller than the shrink wrapped version.

For PowerPC to make it shrink-wrappable prepare_shrink_wrap would need
to split the "mr." instruction and sink the "mr" part.  This is one insn
bigger but it is faster on the early-return path (which is predicted as
happening 50% of the time), and marginally slower (if it all) on the
"normal" path.

> gcc/testsuite/ChangeLog
> 2017-01-20  Nick Clifton  <ni...@redhat.com>
> 
>       * gcc.dg/pr10474.c: Update XFAIL comment to explain why the
>       check for shrink-wrapping can be expected to fail.
>       * gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise.

That is not the file you edited :-)


> -/* XFAIL due to PR70681.  */ 
> +/* The XFAILs are because these targets produce better code without
> +   shrinkwrapping, and hence the optimization is not triggered.  See
> +   PR70681 for more details.  */

For PowerPC it isn't better code.

/* The XFAILs are because these targets have combined the register save
   into another insn, and currently we cannot undo that (if that would be
   a good idea at all).  This is PR70681.  */

or similar?


Segher

Reply via email to