[Development] QTBUG-30440: restricting the SIMD files

Thiago Macieira thiago.macieira at intel.com
Tue Aug 20 03:54:16 CEST 2013


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 how
> > 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 fairly 
> limited. I will look into this soon.

Ok, just checked.

- We use many typedefs and constants from qglobal.h (Q_CC_xx, quint32, etc.)

- 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, QTransform. 
  The latter three are especially a problem because they do floating-point. 

- The helpers access internal structures defined elsewhere, like QClipData, 
  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. That 
automatically excludes each and every Qt header.

I can probably make the helpers #include "../../corelib/tools/qsimd_p.h", make 
qsimd_p.h include only qconfig.h and qcompilerdetection.h.

But the rest is going to be quite difficult...

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130819/68584af8/attachment.sig>


More information about the Development mailing list