summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7Lorn Potter2010-08-2570-214/+3571
|\
| * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-08-2558-166/+4303
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (50 commits) Add the missing license headers to the QString benchmark data Fix building of qsimd.cpp on Windows CE Use QElapsedTimer for the benchlib tests. Properly implement the CPU feature disabling in qsimd.cpp. Report the detected CPU features in the corelib boilerplate Detect CPU features on ARM by reading the ELF auxvec. Split the CPU-detection code into multiple functions for readability Fixed delivering gestures to a toplevel widget. Unroll the SSSE3 code even more to avoid the need to keep an extra variable for inverting the result Don't try to compile the SSE2 and SSSE3 code with compilers that don't support them (e.g. ARM) Improve on the SSSE3 with alternate aligning function. Add the beginnings of a new SSSE3-based aligning algorithm Small fixup Update the SSSE3-with-alignment function to use aligned loads. Add an ucstrncmp that uses SSSE3 with aligning. Add an SSSE3 version of ucstrncmp Optimise the tail comparison of ucstrncmp Add a version of ucstrncmp with SSE2 with aligning. Add an SSE2-optimised version of ucstrncmp Add the ucstrncmp benchmarks ...
| | * Add the missing license headers to the QString benchmark dataThiago Macieira2010-08-244-2/+46
| | |
| | * Fix building of qsimd.cpp on Windows CEThiago Macieira2010-08-241-0/+2
| | |
| | * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-08-2457-166/+4257
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (48 commits) Use QElapsedTimer for the benchlib tests. Properly implement the CPU feature disabling in qsimd.cpp. Report the detected CPU features in the corelib boilerplate Detect CPU features on ARM by reading the ELF auxvec. Split the CPU-detection code into multiple functions for readability Fixed delivering gestures to a toplevel widget. Unroll the SSSE3 code even more to avoid the need to keep an extra variable for inverting the result Don't try to compile the SSE2 and SSSE3 code with compilers that don't support them (e.g. ARM) Improve on the SSSE3 with alternate aligning function. Add the beginnings of a new SSSE3-based aligning algorithm Small fixup Update the SSSE3-with-alignment function to use aligned loads. Add an ucstrncmp that uses SSSE3 with aligning. Add an SSSE3 version of ucstrncmp Optimise the tail comparison of ucstrncmp Add a version of ucstrncmp with SSE2 with aligning. Add an SSE2-optimised version of ucstrncmp Add the ucstrncmp benchmarks Update the data generation script to use a non-including .cpp Update comments in QString about alignment performance. ...
| | | * Use QElapsedTimer for the benchlib tests.Thiago Macieira2010-08-242-2/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It's faster to calculate the time with it, since it doesn't need to convert to local time first. Reviewed-By: Harald Fernengel
| | | * Properly implement the CPU feature disabling in qsimd.cpp.Thiago Macieira2010-08-241-97/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use ^=, since that might enable a feature that wasn't detected. The new use is: export QT_NO_CPU_FEATURE="<feature1> [<feature2>]" Reviewed-by: Benjamin Poulain
| | | * Report the detected CPU features in the corelib boilerplateThiago Macieira2010-08-242-0/+56
| | | |
| | | * Detect CPU features on ARM by reading the ELF auxvec.Thiago Macieira2010-08-241-2/+43
| | | | | | | | | | | | | | | | Reviewed-by: Benjamin Poulain
| | | * Split the CPU-detection code into multiple functions for readabilityThiago Macieira2010-08-241-17/+69
| | | | | | | | | | | | | | | | Reviewed-By: Benjamin Poulain
| | | * Fixed delivering gestures to a toplevel widget.Denis Dzyubenko2010-08-242-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there is only one widget which is a toplevel, then gestures were not delivered to it because we assumed (wrong) that there is at least one child widget. Reviewed-by: Frederik Gladhorn
| | | * Unroll the SSSE3 code even more to avoid the need to keep an extra variable ↵Thiago Macieira2010-08-241-35/+53
| | | | | | | | | | | | | | | | | | | | | | | | for inverting the result On 32-bit, we're out of registers already, so this variable ended up in memory
| | | * Don't try to compile the SSE2 and SSSE3 code with compilers that don't ↵Thiago Macieira2010-08-241-3/+11
| | | | | | | | | | | | | | | | support them (e.g. ARM)
| | | * Improve on the SSSE3 with alternate aligning function.Thiago Macieira2010-08-241-38/+101
| | | | | | | | | | | | | | | | Even though this function *only* does aligned loads, it's worse than the other function
| | | * Add the beginnings of a new SSSE3-based aligning algorithmThiago Macieira2010-08-241-1/+83
| | | |
| | | * Small fixupThiago Macieira2010-08-241-1/+1
| | | |
| | | * Update the SSSE3-with-alignment function to use aligned loads.Thiago Macieira2010-08-241-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | This results in no change on the Core-i7, but another 2.6% on the Atom (so it's now 8% better than 4-byte loads and 31% better than current code)
| | | * Add an ucstrncmp that uses SSSE3 with aligning.Thiago Macieira2010-08-241-1/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The results on i7 are 32% improvement over current code, 13% improvement over 4-byte loads, 6% over the unaligned SSSE3 loads. However, it's about 2.5% slower than pure SSE2 code due to complexity. The results on Atom are 30% improvement over current code, 7% over 4-byte loads, 15% over pure unaligned SSE2 and 9% over unaligned SSSE3.
| | | * Add an SSSE3 version of ucstrncmpThiago Macieira2010-08-241-1/+79
| | | |
| | | * Optimise the tail comparison of ucstrncmpThiago Macieira2010-08-241-2/+36
| | | |
| | | * Add a version of ucstrncmp with SSE2 with aligning.Thiago Macieira2010-08-241-1/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a different technique of aligning. Instead of reading some bytes before the string, we will read some bytes of the string twice. Best results are only 2% improvement over the unaligned SSE2 on a Core-i7.
| | | * Add an SSE2-optimised version of ucstrncmpThiago Macieira2010-08-241-1/+38
| | | | | | | | | | | | | | | | | | | | First results make it 34% faster than current ucstrncmp, 16% faster than the 32-bit version.
| | | * Add the ucstrncmp benchmarksThiago Macieira2010-08-241-0/+136
| | | |
| | | * Update the data generation script to use a non-including .cppThiago Macieira2010-08-244-14/+23
| | | | | | | | | | | | | | | | | | | | This speeds up the writing of algorithms, so I don't have to recompile megabytes of data dumps.
| | | * Update comments in QString about alignment performance.Thiago Macieira2010-08-242-15/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit makes no code change at all. Write down the conclusions from experimenting with the x86 SIMD instructions for faster string comparison routines. Long story short: we're already pretty good. The SSE4.2 string instructions are probably more useful for "implicit-length mode" (that is, the end of the string is marked by a NUL), rather than QString's "explicit-length mode".
| | | * Major improvements to the comparison functions.Thiago Macieira2010-08-242-188/+1770
| | | | | | | | | | | | | | | | | | | | | | | | Also use the real-world data that I collected. The resulting files are quite large, so I've added to Git only the smallest dump (apparently Teambuilder scanning the environment for "TEAMBUILDER=").
| | | * Add a script to generate real-world data from applicationsThiago Macieira2010-08-241-0/+200
| | | |
| | | * Slightly better version that saves EBX in an XMM registerThiago Macieira2010-08-241-15/+20
| | | |
| | | * Add an SSE4.2 version of the string comparisonThiago Macieira2010-08-242-1/+43
| | | | | | | | | | | | | | | | | | | | It's currently slightly worse than SSE2 with prolog aligning (i.e., it's no good)
| | | * Add an SSSE3 version that uses palignr to align.Thiago Macieira2010-08-242-1/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using a non-SIMD method for aligning, we instead load more bytes from p1 and use the PALIGNR instruction to realign to what we want. The result is that it's bit slower than the non-SIMD comparison, due to the complexity. For strings over 8 QChars wide, it's only slightly worse than the non-SIMD comparison.
| | | * Add an SSE2 comparison with prologThiago Macieira2010-08-241-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The prolog tries to align p1 to a multiple of 16, so as to run aligned loads, which are faster. Unfortunately, my tests so far indicate that the prolog ends up taking longer than the benefit of having aligned loads.
| | | * Add a benchmark for SSE2 comparison.Thiago Macieira2010-08-242-0/+28
| | | | | | | | | | | | | | | | | | | | This function uses unaligned loads. I'll try to write one with aligned loads later.
| | | * Add a 4-byte comparison routine.Thiago Macieira2010-08-241-0/+48
| | | | | | | | | | | | | | | | This is a copy of qMemEquals from qstring.cpp
| | | * Add some quick benchmarks for QChar comparisonThiago Macieira2010-08-241-1/+142
| | | |
| | | * Allow other compilers than GCC on Linux to have a boilerplateThiago Macieira2010-08-241-1/+1
| | | |
| | | * Include the SSE4.2 intrinsics headerThiago Macieira2010-08-241-0/+1
| | | | | | | | | | | | | | | | Reviewed-By: Benjamin Poulain
| | | * linux-icc can take -msse2, -msse3, etc. flags, so enable this as wellThiago Macieira2010-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise, we actually get compilation errors because configure detected that the compiler supports this, so QT_HAVE_SSSE3 is defined, but we then compile qimage_ssse3.cpp without -mssse3 (Among others) Reviewed-By: Benjamin Poulain
| | | * Introduce a second compatibility build key to Qt.Thiago Macieira2010-08-243-1/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some compilers are compatible with one another. In particular, the Intel CC on Unix systems is compatible with g++ on the same system. We should be saving the ABI "name" in the build key, not the compiler name, but it's too late for that. Choose "g++-{VERSION}" as the standard ABI name and make ICC support that. Reviewed-by: Bradley T. Hughes
| | | * Keep the scopeid that getaddrinfo(3) returns to us.Thiago Macieira2010-08-243-4/+11
| | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-12608, QTBUG-12243 Reviewed-by: Markus Goetz
| | | * qmake vc[x]proj generators: support /MAP option without file nameJoerg Bornemann2010-08-242-2/+4
| | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-13081 Reviewed-by: Martin Petersson
| | | * qmake vcxproj generator: fix bug when using CharacterSet=1 in .pro fileJoerg Bornemann2010-08-241-1/+0
| | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-13080 Reviewed-by: Martin Petersson
| | | * Fix race condition on bearer management initialisation.Aaron McCarthy2010-08-242-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Defer initialisation and changing thread affinity until after the global static is constructed. Task-number: QTBUG-12686
| | | * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-08-2432-89/+1091
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: fix build after first webkit self-injection attempt Fixed touch event delivery in QGraphicsView. let WebKit inject itself into the qt configuration add indirect input/output specification capability to QMAKE_SUBSTITUTES Add test that exercises lupdate warnings for QtScript Make qsTrId() / QT_TRID_NOOP() accessible from QtScript Make lupdate's QtScript frontend recognize qsTrId() / QT_TRID_NOOP() Add support for comments and meta-data in the lupdate QtScript frontend Streamline lupdate's QtScript frontend's error messaging Doc: linking up orphant files Doc: Updating menu links
| * | | \ Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-08-2418-46/+260
| |\ \ \ \ | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Stabilize tst_qgraphicsscene QDeclarativeDebug: send a message when new object are added QDeclarativeEngineDebugServer: make it a singleton. Fix mispositioned text with QStaticText and OpenVG graphics system Use binarysort to find items. QGraphicsView: Fix assert that may occurs if there are 'empty' item to draw, and changed() signal connected Fix tst_Collections::QTBUG13079_collectionInsideCollection Fix assignment of a Q(Explicitly)SharedDataPointer included in the data itself Fix assignment of a container included in the container itself
| | * | | Stabilize tst_qgraphicssceneOlivier Goffart2010-08-241-2/+2
| | | | |
| | * | | QDeclarativeDebug: send a message when new object are addedOlivier Goffart2010-08-245-2/+27
| | | | | | | | | | | | | | | | | | | | Reviewed-by: Lasse Holmstedt
| | * | | QDeclarativeEngineDebugServer: make it a singleton.Olivier Goffart2010-08-243-9/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is already a singleton, just formalize it so it can be used in other files than qdeclarativeengine.cpp This also remove the global olbject QDeclarativeEngineDebugServer::m_engines Reviewed-by: Lasse Holmstedt
| | * | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-08-2412-35/+219
| | |\ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Fix mispositioned text with QStaticText and OpenVG graphics system Use binarysort to find items. QGraphicsView: Fix assert that may occurs if there are 'empty' item to draw, and changed() signal connected Fix tst_Collections::QTBUG13079_collectionInsideCollection Fix assignment of a Q(Explicitly)SharedDataPointer included in the data itself Fix assignment of a container included in the container itself
| | * | | Fix mispositioned text with QStaticText and OpenVG graphics systemEskil Abrahamsen Blomfeldt2010-08-241-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The OpenVG paint engine, like the OpenGL2 paint engine, supports caching the untransformed glyphs and transforming them as they are drawn. Since we would pretransform the positions of the glyphs, the transformation would be applied twice, thus making the glyphs appear in the wrong location when the painter had a transform set. Task-number: QTBUG-13049 Reviewed-by: Gunnar
| | * | | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7Gunnar Sletta2010-08-24597-36258/+42775
| | |\ \ \