[PATCH 00/14] S390: Optimize iconv modules.

Stefan Liebler stli@linux.vnet.ibm.com
Tue Mar 1 15:01:00 GMT 2016


Ping

On 02/23/2016 10:21 AM, Stefan Liebler wrote:
> Hi,
>
> this patch set introduces optimized iconv modules for S390/S390x.
>
> The first patches prepare for the latter optimizations.
> A make warning is eliminated, the order in gconv-modules file is
> changed for the s390 specific modules and a new configure check
> is introduced.
>
> The next patches optimize the current s390 specific iconv modules
> and generic or built-in ones. The optimizations are done e.g. with
> vector instructions, if gcc, binutils can handle those.
> At compile time, the relevant functions are build with/without the
> vector instructions. On runtime, the appropiate function is choosen
> with an ifunc resolver.
>
> The current s390-specific iconv-modules are used on 64bit only.
> These modules are reworked to run on S390 31bit, too.
>
> The last patches fixes some errors. Unfortunately, some of the s390
> convert instructions do not report errors on UTF-16 low surrogates,
> thus those failing instructions has to be disabled. Perhaps those
> instructions can be reenabled in future. Some common-code modules
> have similar problems, which are fixed, too.
>
> The testsuite runs without new test failures. Tests were executed for 31/64bit
> with binutils that do/don't support the z13 vector instructions.
>
> Please review.
> Ok to commit?
>
> Stefan Liebler (14):
>    S390: Get rid of make warning: overriding recipe for target
>      gconv-modules.
>    S390: Mention s390-specific gconv-modues before common ones.
>    S390: Configure check for vector support in gcc.
>    S390: Optimize 8bit-generic iconv modules.
>    S390: Optimize builtin iconv-modules.
>    S390: Optimize iso-8859-1 to ibm037 iconv-module.
>    S390: Optimize utf8-utf32 module.
>    S390: Optimize utf8-utf16 module.
>    S390: Optimize utf16-utf32 module.
>    S390: Use s390-64 specific ionv-modules on s390-32, too.
>    S390: Fix utf32 to utf8 handling of low surrogates (disable cu41).
>    S390: Fix utf32 to utf16 handling of low surrogates (disable cu42).
>    Fix ucs4le_internal_loop in error case.
>    Fix UTF-16 surrogate handling.
>
>   config.h.in                                  |    4 +
>   iconv/gconv_simple.c                         |    5 +-
>   iconvdata/Makefile                           |   15 +-
>   iconvdata/utf-16.c                           |   12 +
>   iconvdata/utf-32.c                           |    2 +-
>   sysdeps/s390/Makefile                        |   83 ++
>   sysdeps/s390/configure                       |   32 +
>   sysdeps/s390/configure.ac                    |   21 +
>   sysdeps/s390/iso-8859-1_cp037_z900.c         |  262 ++++++
>   sysdeps/s390/multiarch/8bit-generic.c        |  485 ++++++++++
>   sysdeps/s390/multiarch/Makefile              |    4 +
>   sysdeps/s390/multiarch/gconv_simple.c        | 1266 ++++++++++++++++++++++++++
>   sysdeps/s390/multiarch/iconv/skeleton.c      |   21 +
>   sysdeps/s390/s390-64/Makefile                |   81 --
>   sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c |  237 -----
>   sysdeps/s390/s390-64/utf16-utf32-z9.c        |  337 -------
>   sysdeps/s390/s390-64/utf8-utf16-z9.c         |  471 ----------
>   sysdeps/s390/s390-64/utf8-utf32-z9.c         |  511 -----------
>   sysdeps/s390/utf16-utf32-z9.c                |  605 ++++++++++++
>   sysdeps/s390/utf8-utf16-z9.c                 |  818 +++++++++++++++++
>   sysdeps/s390/utf8-utf32-z9.c                 |  862 ++++++++++++++++++
>   21 files changed, 4493 insertions(+), 1641 deletions(-)
>   create mode 100644 sysdeps/s390/Makefile
>   create mode 100644 sysdeps/s390/iso-8859-1_cp037_z900.c
>   create mode 100644 sysdeps/s390/multiarch/8bit-generic.c
>   create mode 100644 sysdeps/s390/multiarch/gconv_simple.c
>   create mode 100644 sysdeps/s390/multiarch/iconv/skeleton.c
>   delete mode 100644 sysdeps/s390/s390-64/iso-8859-1_cp037_z900.c
>   delete mode 100644 sysdeps/s390/s390-64/utf16-utf32-z9.c
>   delete mode 100644 sysdeps/s390/s390-64/utf8-utf16-z9.c
>   delete mode 100644 sysdeps/s390/s390-64/utf8-utf32-z9.c
>   create mode 100644 sysdeps/s390/utf16-utf32-z9.c
>   create mode 100644 sysdeps/s390/utf8-utf16-z9.c
>   create mode 100644 sysdeps/s390/utf8-utf32-z9.c
>



More information about the Libc-alpha mailing list