summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
| * fix build after first webkit self-injection attemptOswald Buddenhagen2010-08-234-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it didn't work for several reasons: - if the configures don't add webkit to QT_CONFIG, src.pro doesn't even know that it needs to build WebKit at all, so WebKit would never inject itself into the build. hen-and-egg problem. - the in-Qt build doesn't use WebKit.pro in the first place, so a proper recursive qmake would never create qt_webkit_version.pri. it worked under unix because configure collects all project files irrespective of the actual SUBDIRS structure. - a proper recursive qmake will cache the qt config, so the injection wouldn't be effective during the first qmake run so instead let the configures copy the pri file.
| * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-08-2332-89/+1090
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: 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-1 into ↵Qt Continuous Integration System2010-08-2332-89/+1090
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: 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
| | | * Fixed touch event delivery in QGraphicsView.Denis Dzyubenko2010-08-232-7/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a touch event with a second touch pressed is delivered inside graphicsview, we should combine it with the closest touch point even if the item under the second touch is not direct ancestor or child of the first touches' target item. So adding a second touch inside the item's bounding rect will send a TouchUpdate event to the item instead or starting a new touch event sequence. Task-number: QT-3795 Reviewed-by: Bradley T. Hughes
| | | * let WebKit inject itself into the qt configurationOswald Buddenhagen2010-08-238-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i.e., don't explicitly deal with qt_webkit_version.pri outside of the webkit source directory. Task-number: QTBUG-12379 Reviewed-by: Simon Hausmann
| | | * add indirect input/output specification capability to QMAKE_SUBSTITUTESOswald Buddenhagen2010-08-234-8/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | like in SUBDIRS, the specified strings can now be basenames of "structures" which specify the actual input and output files: QMAKE_SUBSTITUTES += test test.input = infile.txt.in test.output = foobar.out Reviewed-by: joerg
| | | * Add test that exercises lupdate warnings for QtScriptKent Hansen2010-08-234-0/+118
| | | | | | | | | | | | | | | | Reviewed-by: Oswald Buddenhagen
| | | * Make qsTrId() / QT_TRID_NOOP() accessible from QtScriptKent Hansen2010-08-236-0/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QScriptEngine::installTranslatorFunctions() now installs wrapper functions for qsTrId and QT_TRID_NOOP (similar to the existing ones for tr() and translate()). Task-number: QTBUG-8454 Reviewed-by: Jedrzej Nowacki
| | | * Make lupdate's QtScript frontend recognize qsTrId() / QT_TRID_NOOP()Kent Hansen2010-08-234-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extracting the translation data is only the first step; a separate commit will make the functions available in the QtScript runtime. Task-number: QTBUG-8454 Reviewed-by: Oswald Buddenhagen
| | | * Add support for comments and meta-data in the lupdate QtScript frontendKent Hansen2010-08-235-22/+565
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This brings the support more in line with the C++ frontend. No support for magic TRANSLATOR comment yet. Add a proper test for the QtScript parser. Support for qtTrId() and friends coming in a separate commit. Previously the lexer just skipped comments. Now the contents of each comment is retained and passed to a "comment processor" interface. The parser implements the interface and performs logic very similar to the C++ parser to extract data from the comment. Task-number: QTBUG-11774 Reviewed-by: Oswald Buddenhagen
| | | * Streamline lupdate's QtScript frontend's error messagingKent Hansen2010-08-232-44/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like the C++ parser, use a yyMsg() function. Make the lexer a member of the parser, so yyMsg() can access the filename and current line number. This refactoring is done in preparation of two changes that introduce quite a few more potential error message calls (comment processing and qtTrId support). Reviewed-by: Oswald Buddenhagen
| | | * Merge branch '4.7' of git@scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7Morten Engvoldsen2010-08-231-1/+1
| | | |\
| | | * | Doc: linking up orphant filesMorten Engvoldsen2010-08-232-0/+5
| | | | |
| | | * | Doc: Updating menu linksMorten Engvoldsen2010-08-231-4/+7
| | | | |