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

Stefan Liebler stli@linux.vnet.ibm.com
Tue Mar 8 12:33:00 GMT 2016


ping

On 03/01/2016 04:01 PM, Stefan Liebler wrote:
> 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