| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
...
|
| | | |
|
| | | |
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
...
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It's faster to calculate the time with it, since it doesn't need to
convert to local time first.
Reviewed-By: Harald Fernengel
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-by: Benjamin Poulain
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-By: Benjamin Poulain
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
for inverting the result
On 32-bit, we're out of registers already, so this variable ended up in memory
|
| | | |
| | | |
| | | |
| | | | |
support them (e.g. ARM)
|
| | | |
| | | |
| | | |
| | | | |
Even though this function *only* does aligned loads, it's worse than the other function
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
First results make it 34% faster than current ucstrncmp, 16% faster than
the 32-bit version.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This speeds up the writing of algorithms, so I don't have to recompile
megabytes of data dumps.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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".
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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=").
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
It's currently slightly worse than SSE2 with prolog aligning
(i.e., it's no good)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
This function uses unaligned loads. I'll try to write one with
aligned loads later.
|
| | | |
| | | |
| | | |
| | | | |
This is a copy of qMemEquals from qstring.cpp
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Reviewed-By: Benjamin Poulain
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-12608, QTBUG-12243
Reviewed-by: Markus Goetz
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-13081
Reviewed-by: Martin Petersson
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-13080
Reviewed-by: Martin Petersson
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Defer initialisation and changing thread affinity until after the
global static is constructed.
Task-number: QTBUG-12686
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| |\ \ \ \
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Reviewed-by: Lasse Holmstedt
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | |\ \ \
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | |\ \ \ |
|