qsimd: Remove QT_COMPILER_SUPPORTS_SIMD_ALWAYS
All[*] compilers support it, always. The last to not support it was GCC 4.8, which we don't support in Qt 6. [*] Anecdotally, clang-cl doesn't but clang-cl isn't supported and that would be an upstream problem: clang-cl developers must find a solution that either matches Clang or cl.exe. Change-Id: I54f205f6b7314351b078fffd16d0a5ed5b7afae5 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
This commit is contained in:
parent
181d7ea053
commit
6323ccfa73
@ -819,12 +819,6 @@ qt_feature("shani" PRIVATE
|
|||||||
)
|
)
|
||||||
qt_feature_definition("shani" "QT_COMPILER_SUPPORTS_SHA" VALUE "1")
|
qt_feature_definition("shani" "QT_COMPILER_SUPPORTS_SHA" VALUE "1")
|
||||||
qt_feature_config("shani" QMAKE_PRIVATE_CONFIG)
|
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
|
qt_feature("mips_dsp" PRIVATE
|
||||||
LABEL "DSP"
|
LABEL "DSP"
|
||||||
CONDITION ( TEST_architecture_arch STREQUAL mips ) AND TEST_arch_${TEST_architecture_arch}_subarch_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"
|
MESSAGE "Other x86"
|
||||||
CONDITION ( ( TEST_architecture_arch STREQUAL i386 ) OR ( TEST_architecture_arch STREQUAL x86_64 ) )
|
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(
|
qt_configure_add_summary_entry(
|
||||||
TYPE "featureList"
|
TYPE "featureList"
|
||||||
ARGS "neon arm_crc32 arm_crypto"
|
ARGS "neon arm_crc32 arm_crypto"
|
||||||
|
@ -1273,7 +1273,7 @@ void QMessagePattern::setPattern(const QString &pattern)
|
|||||||
#if defined(QLOGGING_HAVE_BACKTRACE) && !defined(QT_BOOTSTRAPPED)
|
#if defined(QLOGGING_HAVE_BACKTRACE) && !defined(QT_BOOTSTRAPPED)
|
||||||
// make sure the function has "Message" in the name so the function is removed
|
// 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)
|
&& !defined(Q_CC_INTEL) && !defined(Q_CC_CLANG)
|
||||||
// force skipping the frame pointer, to save the backtrace() function some work
|
// force skipping the frame pointer, to save the backtrace() function some work
|
||||||
__attribute__((optimize("omit-frame-pointer")))
|
__attribute__((optimize("omit-frame-pointer")))
|
||||||
|
@ -103,6 +103,9 @@
|
|||||||
* sub-arch. Only inside such functions is the use of the intrisics
|
* sub-arch. Only inside such functions is the use of the intrisics
|
||||||
* guaranteed to work. This is useful with runtime detection (see below).
|
* 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
|
* Runtime detection of a CPU sub-architecture can be done with the
|
||||||
* qCpuHasFeature(XXX) function. There are two strategies for generating
|
* qCpuHasFeature(XXX) function. There are two strategies for generating
|
||||||
* optimized code like that:
|
* optimized code like that:
|
||||||
@ -145,7 +148,7 @@
|
|||||||
|
|
||||||
#define QT_COMPILER_SUPPORTS(x) (QT_COMPILER_SUPPORTS_ ## x - 0)
|
#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))
|
# define QT_COMPILER_SUPPORTS_HERE(x) ((__ARM_FEATURE_ ## x) || (__ ## x ## __) || QT_COMPILER_SUPPORTS(x))
|
||||||
# if defined(Q_CC_GNU)
|
# if defined(Q_CC_GNU)
|
||||||
/* GCC requires attributes for a function */
|
/* GCC requires attributes for a function */
|
||||||
@ -162,7 +165,7 @@
|
|||||||
# if !defined(__MIPS_DSPR2__) && defined(__mips_dspr2) && defined(Q_PROCESSOR_MIPS_32)
|
# if !defined(__MIPS_DSPR2__) && defined(__mips_dspr2) && defined(Q_PROCESSOR_MIPS_32)
|
||||||
# define __MIPS_DSPR2__
|
# define __MIPS_DSPR2__
|
||||||
# endif
|
# 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)
|
# if defined(Q_CC_CLANG) && defined(Q_CC_MSVC)
|
||||||
# define QT_COMPILER_SUPPORTS_HERE(x) (__ ## x ## __)
|
# define QT_COMPILER_SUPPORTS_HERE(x) (__ ## x ## __)
|
||||||
# else
|
# else
|
||||||
|
Loading…
Reference in New Issue
Block a user