qt5base-lts/src
Thiago Macieira 8b77fe9f64 Improve qstring.cpp:findChar with SSE2
This updates only the case-sensitive searching. The case-insensitive
part requires quite a few Unicode transformations.

The benchmarks tried are the plain word-by-word comparison used in Qt
5.2 and in builds without SSE2; the SSE2 benchmark; a benchmark using
the SSE4.2 "strchr" instruction. I've run the benchmark both for CPU
cyles used as well as bytes/sec scanning strings.

Improvement over the Qt 5.2 code:

            GCC 4.7         GCC 4.9        Clang 3.4        ICC 14
          cycles  MB/s    cycles  MB/s    cycles  MB/s    cycles  MB/s
SSE2       2.1x   2.9x     2.2x   2.9x     2.1x   3.1x     2.2x   3.1x
SSE4.2     1.5x   1.7x     1.5x   1.7x     1.5x   1.7x     1.6x   1.8x

Once again, the SSE4.2 instruction wasn't as effective as I'd hoped
(not to mention that Clang seems to have some bugs emitting it).

Change-Id: I57c6e65e91791bb5265965cbd1af7fbd8fe7f588
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-01-31 21:51:19 +01:00
..
3rdparty Make HarBuzz-NG the default shaper on Mac 2014-01-31 12:07:59 +01:00
android Only Android API < 11 needs o set the surface type. 2014-01-31 12:07:59 +01:00
angle remove doubled specification 2014-01-31 07:58:39 +01:00
concurrent QtConcurrent: Workaround GCC bug 58800 in median calculation 2013-12-03 11:45:18 +01:00
corelib Improve qstring.cpp:findChar with SSE2 2014-01-31 21:51:19 +01:00
dbus Add method to QDBusServer to allow anonymous client connections. 2014-01-15 14:15:22 +01:00
gui QOpenGLTexture: avoid a QImage detach when uploading texture data from it 2014-01-31 18:57:50 +01:00
network Add more specific HTTP error codes to QNetworkReply::NetworkError 2014-01-30 07:56:47 +01:00
opengl Support multiple native surfaces on Android. 2014-01-17 10:23:08 +01:00
openglextensions Use BSD licensing for QtOpenGLExtensions instead of LGPL 2013-06-24 10:16:32 +02:00
platformsupport Make HarBuzz-NG the default shaper on Mac 2014-01-31 12:07:59 +01:00
plugins Move Direct2D paint engine on top of QPaintEngineEx 2014-01-31 14:51:48 +01:00
printsupport qprintengine_win.cpp: Fix assert when printing with custom page sizes. 2014-01-28 13:40:34 +01:00
sql Merge remote-tracking branch 'origin/stable' into dev 2014-01-20 18:18:59 +01:00
testlib Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-01-21 17:57:54 +01:00
tools moc: Make error message 'too many input files' more verbose. 2014-01-27 13:01:48 +01:00
widgets QWizard: Fix QWizardPrivate::QWizardPrivate() 2014-01-31 18:28:40 +01:00
winmain WinRT winmain: handle -qdevel parameter for additional debugging tooling 2014-01-30 22:09:55 +01:00
xml expand tabs and related whitespace fixes in *.{cpp,h,qdoc} 2014-01-13 22:46:50 +01:00
src.pro move and build qlalr 2014-01-20 09:26:47 +01:00