diff --git a/configure.cmake b/configure.cmake index 879764aca7..673eb00faf 100644 --- a/configure.cmake +++ b/configure.cmake @@ -819,12 +819,6 @@ qt_feature("shani" PRIVATE ) qt_feature_definition("shani" "QT_COMPILER_SUPPORTS_SHA" VALUE "1") qt_feature_config("shani" QMAKE_PRIVATE_CONFIG) -qt_feature("simdAlways" - LABEL "Intrinsics without compiler architecture option" - CONDITION ( ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) ) AND ON ) OR ( TEST_architecture_arch STREQUAL arm64 ) -) -qt_feature_definition("simdAlways" "QT_COMPILER_SUPPORTS_SIMD_ALWAYS" VALUE "1") -qt_feature_config("simdAlways" QMAKE_PRIVATE_CONFIG) qt_feature("mips_dsp" PRIVATE LABEL "DSP" CONDITION ( TEST_architecture_arch STREQUAL mips ) AND TEST_arch_${TEST_architecture_arch}_subarch_dsp @@ -1079,10 +1073,6 @@ qt_configure_add_summary_entry( MESSAGE "Other x86" CONDITION ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) ) ) -qt_configure_add_summary_entry( - ARGS "simdAlways" - CONDITION ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) OR ( TEST_architecture_arch STREQUAL arm64 ) ) AND NOT MSVC -) qt_configure_add_summary_entry( TYPE "featureList" ARGS "neon arm_crc32 arm_crypto" diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index a50eccfa7f..7b8c030e54 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -1273,7 +1273,7 @@ void QMessagePattern::setPattern(const QString &pattern) #if defined(QLOGGING_HAVE_BACKTRACE) && !defined(QT_BOOTSTRAPPED) // make sure the function has "Message" in the name so the function is removed -#if ((defined(Q_CC_GNU) && defined(QT_COMPILER_SUPPORTS_SIMD_ALWAYS)) || __has_attribute(optimize)) \ +#if (defined(Q_CC_GNU) || __has_attribute(optimize)) \ && !defined(Q_CC_INTEL) && !defined(Q_CC_CLANG) // force skipping the frame pointer, to save the backtrace() function some work __attribute__((optimize("omit-frame-pointer"))) diff --git a/src/corelib/global/qsimd_p.h b/src/corelib/global/qsimd_p.h index 8f71b34fea..ab865f0985 100644 --- a/src/corelib/global/qsimd_p.h +++ b/src/corelib/global/qsimd_p.h @@ -103,6 +103,9 @@ * sub-arch. Only inside such functions is the use of the intrisics * guaranteed to work. This is useful with runtime detection (see below). * + * The distinction between QT_COMPILER_SUPPORTS and QT_COMPILER_SUPPORTS_HERE is + * historical: GCC 4.8 needed the distinction. + * * Runtime detection of a CPU sub-architecture can be done with the * qCpuHasFeature(XXX) function. There are two strategies for generating * optimized code like that: @@ -145,7 +148,7 @@ #define QT_COMPILER_SUPPORTS(x) (QT_COMPILER_SUPPORTS_ ## x - 0) -#if defined(Q_PROCESSOR_ARM) && defined(QT_COMPILER_SUPPORTS_SIMD_ALWAYS) +#if defined(Q_PROCESSOR_ARM) # define QT_COMPILER_SUPPORTS_HERE(x) ((__ARM_FEATURE_ ## x) || (__ ## x ## __) || QT_COMPILER_SUPPORTS(x)) # if defined(Q_CC_GNU) /* GCC requires attributes for a function */ @@ -162,7 +165,7 @@ # if !defined(__MIPS_DSPR2__) && defined(__mips_dspr2) && defined(Q_PROCESSOR_MIPS_32) # define __MIPS_DSPR2__ # endif -#elif defined(Q_PROCESSOR_X86) && defined(QT_COMPILER_SUPPORTS_SIMD_ALWAYS) +#elif defined(Q_PROCESSOR_X86) # if defined(Q_CC_CLANG) && defined(Q_CC_MSVC) # define QT_COMPILER_SUPPORTS_HERE(x) (__ ## x ## __) # else