[PATCH v2 2/6] powerpc: Use generic wcscpy optimization

Gabriel F. T. Gomes gabriel@inconstante.eti.br
Sat Mar 23 14:57:00 GMT 2019


Hi, Adhemerval,

Thanks for doing this.

On Wed, Mar 13 2019, Adhemerval Zanella wrote:
> This patch removes the power6 wcscpy optimization and use generic
> implementation instead.  Currently both power6 and power7 ifunc variant
> resulting binary are essentially the same and the generic implementation
> with unrolling loop set to 8 also results in similar performance.

I checked the performance impact of this patch set and compared it
against the impact of the previous version [1], all on a POWER9 machine.
In the attachment, there are 6 spreadsheets (two for each of the
functions being replaced: one that shows the performance degradation
caused by the first version of this change, and another that shows that
the performance change of this new version is quite allright).  In each
of the spreadsheets, I plotted a graph that visually shows the impact on
performance.

The patch looks good to me with the ChangeLog fixed (see below).

Reviewed-by: Gabriel F. T. Gomes <gabriel@inconstante.eti.br>

[1] https://sourceware.org/ml/libc-alpha/2019-03/msg00065.html

> 	* sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcscpy.c):
> 	New rule.
> 	* sysdeps/powerpc/power6/wcscpy.c: Remove file.
> 	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c:
> 	Likewise.
> 	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c:
> 	Likewise.
> 	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c:
> 	Likewise.
> 	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Likewise.
> 	* sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.

This file has not been removed, maybe you could just move it...

> 	* sysdeps/powerpc/powerpc64/multiarch/wcscpy-power6.c: Likewise.
> 	* sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c: Likewise.
> 	* sysdeps/powerpc/powerpc64/multiarch/wcscpy-ppc64.c: Likewise.
> 	* sysdeps/powerpc/powerpc64/multiarch/wcscpy.c: Likewise.
> 	* sysdeps/powerpc/powerpc64/power6/wcscpy.c: Likewise.
> 	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
> 	[$(subdir) == wcsmbs] (sysdeps_routines): Remove wcscpy-power6 and
> 	wcscpy-power7.
> 	(CFLAGS-wcscpy-power7.c, CFLAGS-wcscpy-power6.c): Remove rule.
> 	* sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise.
> 	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c:
> 	Remove wcscpy optimizations.

... Here.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wcsxxx.ods
Type: application/vnd.oasis.opendocument.spreadsheet
Size: 517836 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20190323/89aa2364/attachment.ods>


More information about the Libc-alpha mailing list