[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