summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use the ARM version of UTF-8 detection in the Neon codeThiago Macieira2011-03-221-16/+13
|
* Update the data files for the QString benchmark testThiago Macieira2011-03-223-204/+71503
| | | | Also add the Neon build flags
* Fix a bug in the SSE2 UTF-8 decoder.Thiago Macieira2011-03-221-0/+4
| | | | | If the multibyte sequence crossed the end of the SSE2 area, then len would have a wrong value and the data wouldn't be read.
* Add ARM Neon versions of fromLatin1 and fromUtf8Thiago Macieira2011-03-221-0/+192
| | | | | | | | | | | | | | | | | | | | | The fromLatin1 code is very simple, yet the handwritten assembly performs better due to the use of post-increments. The fromUtf8 code has two alternatives. Neon lacks an instruction similar to SSE2's _mm_movemask_epi8 (PMOVMSKB) which extracts one bit from each byte and stores it in a register. We used that in the UTF-8 code to detect bytes with the highest bit set. To compensate, we used two alternatives: 1) AND the comparison result with a vector containing {128, 64, ...,1 } Do 3 parallel-adds (VPADD.I8), which will make the mask propagate to the lowest component in the vector. Trick found in: http://hilbert-space.de/?p=22 (comment 16-17) 2) Extract the two words from the doubleword Neon register and do the work in ARM assembly. It looks like the latter version is performing better.
* Make this compile on Atom/Core2 (no SSE4) and on ARM (no SSE)Thiago Macieira2011-03-221-1/+18
|
* Add baselines and zeros to the benchmarks.Thiago Macieira2011-03-221-6/+13
|
* Add an UTF-8 conversion on trusted data and no BOM.Thiago Macieira2011-03-221-0/+48
| | | | | This assumes that there are no overlong sequences, no continuation characters without the leading, no missing continuations and no BOM.
* Make it easier to write a UTF-8 conversion on trusted dataThiago Macieira2011-03-221-38/+58
|
* Add the missing tests and 4-byte UTF-8 sequencesThiago Macieira2011-03-221-1/+23
|
* Improve the code and avoid unnecessary storesThiago Macieira2011-03-221-7/+9
| | | | | If there's an UTF-8 high byte in the first 8 bytes, don't try to save the latter 8 characters
* Add an UTF-8 conversion optimised for ASCII using SSE2Thiago Macieira2011-03-221-1/+54
| | | | | This code is 2x faster than the original UTF-8 code and within 35% of the pure Latin1 code
* Add an UTF-8 conversion code that is optimised for ASCIIThiago Macieira2011-03-221-2/+94
| | | | This code is ~1.5x faster than the original UTF-8 code
* Add a stateless copy of the Qt 4.7 UTF-8 codec.Thiago Macieira2011-03-221-0/+99
| | | | For whatever reason, this code is worse than the stateful code...
* Add UTF-8 code benchmarksThiago Macieira2011-03-221-0/+223
| | | | | | Also compare to the Latin1 functions. The UTF-8 algorithm in Qt 4.7 right now is 109% slower than the unoptimised Latin-1 algo, 120% than the Qt 4.7 SSE2 code
* Improve a little more the core loop and propagate to the other codeThiago Macieira2011-03-221-18/+22
| | | | | | Currently are that the "improved SSE2" version and the SSE4.1 version are yielding the best results, within 1% of each other. These results are around 20% better than the Qt 4.7 code.
* Reduce the number of operations in the main loopThiago Macieira2011-03-221-8/+7
| | | | | | The more operations there are, the more time it takes. More importantly, the more variables we touch, the more the compiler may want to use the stack instead of registers.
* Add an SSE4 version using PMOVZXBW and PSRLDQThiago Macieira2011-03-221-0/+22
|
* Attempt to improve the epilog codeThiago Macieira2011-03-221-19/+72
|
* Add two SIMD overcommit prologsThiago Macieira2011-03-221-0/+21
|
* Try to remove the non-determinism by moving the malloc() awayThiago Macieira2011-03-221-10/+15
|
* Optimise the prolog even furtherThiago Macieira2011-03-221-16/+33
|
* Try to improve the prolog by doing less operationsThiago Macieira2011-03-221-7/+7
|
* Add an unrolled prologThiago Macieira2011-03-221-1/+22
|
* Make the prolog function more genericThiago Macieira2011-03-221-12/+6
|
* Add an SSE2 alternative with prologThiago Macieira2011-03-221-0/+48
|
* Add some boundary/spill protectionThiago Macieira2011-03-221-4/+8
|
* Correct the code: use ushorts, not QCharThiago Macieira2011-03-221-4/+4
|
* Add the SSE2 code we have in Qt 4.7 to the benchmarkThiago Macieira2011-03-221-0/+26
|
* Add a test for QString::fromLatin1 performace alternativesThiago Macieira2011-03-225-11/+414
|
* Remove the __attribute__((optimize)) marksThiago Macieira2011-03-221-11/+11
|
* Add a script that generates a string table of 8-bitsThiago Macieira2011-03-221-0/+203
|
* Add a benchmark for QString::fromLatin1Thiago Macieira2011-03-221-0/+36
|
* Add a feature to QTestLib to correct benchmark results.Thiago Macieira2011-03-2220-33/+134
| | | | | | | | | | | | | | | | | | | | | | Two special values are added to the measurement of benchmarks: a zero and a comparison. The "zero" value is to be used when the test incurs a non-negligible overhead just to run. The benchmark author should add an "empty" run that measures basically the overhead and set it to attribute QTest::Zero. The "zero" value will be subtracted from any benchmark measurements before reporting (currently the plain logger only). Note that all benchmark types don't make sense, notably those already measurement some kind of rate, like frames per second and bytes per second. The "baseline" value is the comparison (with the "zero" subtracted"). When the baseline is set, the library will instead report the ratio between the benchmark and the baseline, in percentage or a multiple (e.g. "75%" [of the time] or "10.0x" [faster]). Adding measurements in "robes" left for future improvement. This feature is not reviewed and will be reverted later.
* Fix warning about maybe-uninitialised use of variableThiago Macieira2011-03-221-0/+1
|
* Fix warning about comparing Qt::Orientation to QDeclarativeView::OrientationThiago Macieira2011-03-221-1/+1
|
* Fix warning about copy constructor not initialising base explicitlyThiago Macieira2011-03-221-0/+1
|
* Examples: Make the download example also print the SSL errorsThiago Macieira2011-03-221-0/+17
|
* Compile in C++0x modeThiago Macieira2011-03-221-10/+10
|
* Fix warning about "data" being unused.Thiago Macieira2011-03-221-0/+1
| | | | Reviewed-by: Trust Me
* Fix declaration: it's QT_DECL_ALIGN, not QT_DECL_ALIGNEDThiago Macieira2011-03-221-1/+1
|
* QSharedNetworkSession: Fix compile on AIX.Pierre Rossi2011-03-221-0/+2
| | | | Reviewed-by: Markus Goetz
* desinger: Add keyboard accellerator to 'Edit' menuhjk2011-03-221-1/+1
| | | | Reviewed-by: Friedemann Kleint
* Merge remote-tracking branch 'mainline/master'Oswald Buddenhagen2011-03-22291-2583/+12433
|\ | | | | | | | | Conflicts: src/gui/image/qpnghandler.cpp
| * Merge branch 'qt-master-from-4.7' of ↵Qt Continuous Integration System2011-03-2212-22/+93
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | scm.dev.nokia.troll.no:qt/qt-integration into master-integration * 'qt-master-from-4.7' of scm.dev.nokia.troll.no:qt/qt-integration: Add flag for forcibly propagating backing store alpha to framebuffer Fixed unmatched quotes in s60installs.pro Added setSwitchPolicy to MeeGo graphicssystem helper API. Add /q switch to QMAKE_DEL_FILE command in symbian
| | * Merge branch 4.7 into qt-master-from-4.7Qt Continuous Integration System2011-03-1912-22/+93
| | |\
| | | * Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2011-03-195-14/+34
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Add flag for forcibly propagating backing store alpha to framebuffer Fixed unmatched quotes in s60installs.pro
| | | | * Add flag for forcibly propagating backing store alpha to framebufferGareth Stockwell2011-03-184-13/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the following rules applies to the creation and blitting of the Symbian raster backing store: 1. Creation of backing store with an alpha channel: Backing store has an alpha channel only if !QWidget::isOpaque. 2. Pre-filling of backing store prior to paint loop: Backing store is filled with transparent pixels if !QWidget::isOpaque. 3. Blitting of backing store: CGraphicsContext::EDrawModeWriteAlpha is used (meaning that backing store alpha values are propagated into the frame buffer), if QWidget::isOpaque. In order for the direct camera viewfinder to be visible on DSA devices, alpha=0 must be written into the framebuffer in the region where the viewfinder will be displayed. This requires a backing store with an alpha channel (1), use of CGraphicsContext::EDrawModeWriteAlpha (3), but not pre-filling of the entire backing store (2). This patch adds a new enum value, QWExtra::BlitWriteAlpha, which can be used by camera backends to achieve the desired behaviour. Task-number: QTMOBILITY-1278 Reviewed-by: Jani Hautakangas
| | | | * Fixed unmatched quotes in s60installs.proGareth Stockwell2011-03-181-1/+1
| | | | | | | | | | | | | | | | | | | | Reviewed-by: Miikka Heikkinen
| | | * | Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2011-03-186-7/+58
| | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Added setSwitchPolicy to MeeGo graphicssystem helper API.
| | | | * | Added setSwitchPolicy to MeeGo graphicssystem helper API.Samuel Rødal2011-03-186-7/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This lets the application control whether or not automatic switching should be used, and also to completely disable switching if desired. Reviewed-by: Armin Berres