public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/14] S390: Optimize iconv modules.
@ 2016-02-23  9:22 Stefan Liebler
  2016-02-23  9:21 ` [PATCH 01/14] S390: Get rid of make warning: overriding recipe for target gconv-modules Stefan Liebler
                   ` (14 more replies)
  0 siblings, 15 replies; 55+ messages in thread
From: Stefan Liebler @ 2016-02-23  9:22 UTC (permalink / raw)
  To: libc-alpha; +Cc: Stefan Liebler

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

-- 
2.3.0

^ permalink raw reply	[flat|nested] 55+ messages in thread

end of thread, other threads:[~2016-05-25 15:58 UTC | newest]

Thread overview: 55+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-23  9:22 [PATCH 00/14] S390: Optimize iconv modules Stefan Liebler
2016-02-23  9:21 ` [PATCH 01/14] S390: Get rid of make warning: overriding recipe for target gconv-modules Stefan Liebler
2016-04-14 14:16   ` Stefan Liebler
2016-04-21 15:00     ` Stefan Liebler
2016-04-28  6:55       ` Stefan Liebler
2016-05-04 13:15         ` [PING] " Stefan Liebler
2016-05-04 13:40           ` Andreas Schwab
2016-05-09 14:33             ` Stefan Liebler
2016-05-18 15:28               ` Stefan Liebler
2016-05-24 15:02                 ` Stefan Liebler
2016-05-25 15:29                   ` [COMMITTED] " Stefan Liebler
2016-05-25 15:37                     ` Joseph Myers
2016-05-25 15:58                       ` Stefan Liebler
2016-05-25 16:32                         ` Joseph Myers
2016-02-23  9:21 ` [PATCH 02/14] S390: Mention s390-specific gconv-modues before common ones Stefan Liebler
2016-04-15 10:27   ` Florian Weimer
2016-04-21 14:50     ` Stefan Liebler
2016-02-23  9:21 ` [PATCH 13/14] Fix ucs4le_internal_loop in error case Stefan Liebler
2016-02-23 17:42   ` Joseph Myers
2016-02-25  9:00     ` Stefan Liebler
2016-03-18 13:04       ` Stefan Liebler
2016-03-31  9:20         ` Stefan Liebler
2016-03-31  9:45       ` Andreas Schwab
2016-02-23  9:22 ` [PATCH 05/14] S390: Optimize builtin iconv-modules Stefan Liebler
2016-03-18 12:58   ` Stefan Liebler
2016-04-21 14:51     ` Stefan Liebler
2016-02-23  9:22 ` [PATCH 03/14] S390: Configure check for vector support in gcc Stefan Liebler
2016-02-23  9:22 ` [PATCH 06/14] S390: Optimize iso-8859-1 to ibm037 iconv-module Stefan Liebler
2016-04-21 15:05   ` Stefan Liebler
2016-02-23  9:22 ` [PATCH 11/14] S390: Fix utf32 to utf8 handling of low surrogates (disable cu41) Stefan Liebler
2016-04-21 15:25   ` Stefan Liebler
2016-02-23  9:22 ` [PATCH 04/14] S390: Optimize 8bit-generic iconv modules Stefan Liebler
2016-04-15 13:05   ` Florian Weimer
2016-04-21 15:35     ` Stefan Liebler
2016-02-23  9:22 ` [PATCH 08/14] S390: Optimize utf8-utf16 module Stefan Liebler
2016-04-21 15:20   ` Stefan Liebler
2016-02-23  9:22 ` [PATCH 07/14] S390: Optimize utf8-utf32 module Stefan Liebler
2016-04-21 15:15   ` Stefan Liebler
2016-02-23  9:22 ` [PATCH 09/14] S390: Optimize utf16-utf32 module Stefan Liebler
2016-04-21 14:55   ` Stefan Liebler
2016-02-23  9:22 ` [PATCH 12/14] S390: Fix utf32 to utf16 handling of low surrogates (disable cu42) Stefan Liebler
2016-04-21 15:30   ` Stefan Liebler
2016-02-23  9:23 ` [PATCH 10/14] S390: Use s390-64 specific ionv-modules on s390-32, too Stefan Liebler
2016-02-23 12:06   ` Stefan Liebler
2016-04-21 15:10   ` Stefan Liebler
2016-02-23  9:23 ` [PATCH 14/14] Fix UTF-16 surrogate handling Stefan Liebler
2016-02-23 17:57   ` Joseph Myers
2016-02-25 12:57     ` Stefan Liebler
2016-03-18 13:05       ` Stefan Liebler
2016-03-22 14:39         ` Stefan Liebler
2016-03-31  9:18           ` Stefan Liebler
2016-04-07 14:35             ` Stefan Liebler
2016-04-07 15:18           ` Andreas Schwab
2016-03-01 15:01 ` [PATCH 00/14] S390: Optimize iconv modules Stefan Liebler
2016-03-08 12:33   ` Stefan Liebler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).