Centralize use of __attribute__((noinline))
There are currently only two users, but I have patches in the pipeline which mark some other function noinline, so proavtively centralize the ifdef'ery involved. Change-Id: I1f02351fdc903d4e026089e12b8a976ed6a8d603 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
7b5ba56b0a
commit
1749c1dd42
@ -485,6 +485,14 @@ typedef qptrdiff qintptr;
|
||||
# define Q_ATTRIBUTE_FORMAT_PRINTF(A, B)
|
||||
#endif
|
||||
|
||||
#ifdef Q_CC_MSVC
|
||||
# define Q_NEVER_INLINE __declspec(noinline)
|
||||
#elif defined(Q_CC_GNU)
|
||||
# define Q_NEVER_INLINE __attribute__((noinline))
|
||||
#else
|
||||
# define Q_NEVER_INLINE
|
||||
#endif
|
||||
|
||||
//defines the type for the WNDPROC on windows
|
||||
//the alignment needs to be forced for sse2 to not crash with mingw
|
||||
#if defined(Q_OS_WIN)
|
||||
|
@ -2761,15 +2761,11 @@ QByteArray QByteArray::mid(int pos, int len) const
|
||||
\sa toUpper(), {8-bit Character Comparisons}
|
||||
*/
|
||||
|
||||
// noinline so that the compiler won't inline the function in each of
|
||||
// prevent the compiler from inlining the function in each of
|
||||
// toLower and toUpper when the only difference is the table being used
|
||||
// (even with constant propagation, there's no gain in performance).
|
||||
template <typename T>
|
||||
#ifdef Q_CC_MSVC
|
||||
__declspec(noinline)
|
||||
#elif defined(Q_CC_GNU)
|
||||
__attribute__((noinline))
|
||||
#endif
|
||||
Q_NEVER_INLINE
|
||||
static QByteArray toCase_template(T &input, const uchar * table)
|
||||
{
|
||||
// find the first bad character in input
|
||||
|
@ -5559,11 +5559,7 @@ struct CasefoldTraits
|
||||
};
|
||||
|
||||
template <typename Traits, typename T>
|
||||
#ifdef Q_CC_MSVC
|
||||
__declspec(noinline)
|
||||
#elif defined(Q_CC_GNU)
|
||||
__attribute__((noinline))
|
||||
#endif
|
||||
Q_NEVER_INLINE
|
||||
static QString detachAndConvertCase(T &str, QStringIterator it)
|
||||
{
|
||||
QString s = qMove(str); // will copy if T is const QString
|
||||
|
Loading…
Reference in New Issue
Block a user