On 20.08.13 03:54, "Thiago Macieira" <[email protected]> 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 >>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... 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 compiled. Cheers, Lars _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
