[Development] QTBUG-30440: restricting the SIMD files

Knoll Lars Lars.Knoll at digia.com
Tue Aug 20 08:24:01 CEST 2013

On 20.08.13 03:54, "Thiago Macieira" <thiago.macieira at intel.com> wrote:

>On quinta-feira, 15 de agosto de 2013 08:06:19, Thiago Macieira wrote:
>> > I'd agree that option (4) is the cleanest solution. Have you checked
>> > much we'd need to change to implement it?
>> No, not yet.
>> I don't think it will be too hard because those routines are still
>> limited. I will look into this soon.
>Ok, just checked.
>- We use many typedefs and constants from qglobal.h (Q_CC_xx, quint32,
>- All of them depend on qsimd_p.h to get the right intrinsics #includes
>-  Also, qmath.h is used.
>- We use a lot of some base classes like QRect, QRectF, QMatrix,
>  The latter three are especially a problem because they do
>- The helpers access internal structures defined elsewhere, like
>  QRasterBuffer
>- There are a few C++ template classes for facilitating work (e.g.
>  QRadialFetchSimd).
>In all, this will be hard work.
>I don't want to include qglobal.h because that's where qRound comes from.
>automatically excludes each and every Qt header.
>I can probably make the helpers #include "../../corelib/tools/qsimd_p.h",
>qsimd_p.h include only qconfig.h and qcompilerdetection.h.
>But the rest is going to be quite difficult...

So we're still lacking a proper solution.

A slightly hacky solution might be to force inlining of inline methods in
these files. With gcc, we could achieve that by defining inline to
__attribute__((always_inline)) on the top of the file that's being


More information about the Development mailing list