02eb9df851
Cascade Lake (CLX) added AVX512VNNI, Ice Lake has added that plus the integer multiplication (IFMA), the vector bit manipulation instructions (VBMI and VBMI2), bit algorithms (BITALG), the extended vector AES instructions (VAES), among others. I haven't turned on the configure check for those yet. I believe the VBMI and IFMA instructions will be interesting for Qt image algorithms, but we'll need some Ice Lakes to do benchmarking on. Change-Id: Ib5d667bf77a740c28d2efffd15cb43dd821d4b2d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
130 lines
4.8 KiB
Plaintext
130 lines
4.8 KiB
Plaintext
#
|
|
# This file is used as a basis for the following compilers:
|
|
#
|
|
# - The GNU C++ compiler (g++)
|
|
# - LLVM
|
|
# - Clang
|
|
#
|
|
# Platform-specific options shared by these compilers are put into:
|
|
#
|
|
# - gcc-base-mac.conf
|
|
# - gcc-base-unix.conf
|
|
#
|
|
# These base files are then combined with configurations for each compiler:
|
|
#
|
|
# - g++-base.conf
|
|
# - g++-macx.conf
|
|
# - g++-unix.conf
|
|
# - llvm.conf
|
|
# - clang.conf
|
|
#
|
|
# The combination happens in the top level mkspec, by including a platform-
|
|
# specific version of the base-file, for example gcc-base-mac.conf, and then
|
|
# a (possibly platform-specific) version of the actual compiler configuration,
|
|
# for example g++-macx.conf.
|
|
#
|
|
# If you are making changes to any of these files, please consider the
|
|
# possible effect it may have due to these include-rules, and whether it
|
|
# might make more sense to share the rule or make it more specific.
|
|
#
|
|
# To verify that your change has the desired effect on the final configuration
|
|
# you can use the manual test in tests/manual/mkspecs.
|
|
#
|
|
|
|
QMAKE_CFLAGS_OPTIMIZE = -O2
|
|
QMAKE_CFLAGS_OPTIMIZE_FULL = -O3
|
|
QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og
|
|
QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
|
|
|
|
!equals(QMAKE_HOST.os, Windows): QMAKE_CFLAGS += -pipe
|
|
QMAKE_CFLAGS_DEPS += -M
|
|
QMAKE_CFLAGS_WARN_ON += -Wall -Wextra
|
|
QMAKE_CFLAGS_WARN_OFF += -w
|
|
QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE
|
|
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
|
|
QMAKE_CFLAGS_DEBUG += -g
|
|
QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
|
|
QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
|
|
QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC
|
|
QMAKE_CFLAGS_ISYSTEM = -isystem
|
|
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
|
|
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
|
|
QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
|
|
QMAKE_CFLAGS_SPLIT_SECTIONS += -ffunction-sections -fdata-sections
|
|
QMAKE_CFLAGS_LTCG = -flto -fno-fat-lto-objects
|
|
QMAKE_CFLAGS_LTCG_FATOBJECTS = -ffat-lto-objects
|
|
QMAKE_CFLAGS_DISABLE_LTCG = -fno-lto
|
|
|
|
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS
|
|
QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS
|
|
QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON
|
|
QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF
|
|
QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE
|
|
QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
|
|
QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG
|
|
QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB
|
|
QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
|
|
QMAKE_CXXFLAGS_APP += $$QMAKE_CFLAGS_APP
|
|
QMAKE_CXXFLAGS_YACC += $$QMAKE_CFLAGS_YACC
|
|
QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
|
|
QMAKE_CXXFLAGS_EXCEPTIONS_OFF += $$QMAKE_CFLAGS_EXCEPTIONS_OFF
|
|
QMAKE_CXXFLAGS_RTTI_ON = -frtti
|
|
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
|
|
QMAKE_CXXFLAGS_SPLIT_SECTIONS += $$QMAKE_CFLAGS_SPLIT_SECTIONS
|
|
QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG
|
|
QMAKE_CXXFLAGS_LTCG_FATOBJECTS = $$QMAKE_CFLAGS_LTCG_FATOBJECTS
|
|
QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG
|
|
|
|
QMAKE_LFLAGS +=
|
|
QMAKE_LFLAGS_DEBUG +=
|
|
QMAKE_LFLAGS_APP +=
|
|
QMAKE_LFLAGS_RELEASE +=
|
|
QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO +=
|
|
QMAKE_LFLAGS_EXCEPTIONS_OFF +=
|
|
QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG -fuse-linker-plugin
|
|
|
|
QMAKE_CFLAGS_C99 = -std=c99
|
|
QMAKE_CFLAGS_C11 = -std=c11
|
|
|
|
QMAKE_CFLAGS_SSE2 += -msse2
|
|
QMAKE_CFLAGS_SSE3 += -msse3
|
|
QMAKE_CFLAGS_SSSE3 += -mssse3
|
|
QMAKE_CFLAGS_SSE4_1 += -msse4.1
|
|
QMAKE_CFLAGS_SSE4_2 += -msse4.2
|
|
QMAKE_CFLAGS_F16C += -mf16c
|
|
QMAKE_CFLAGS_RDRND += -mrdrnd
|
|
QMAKE_CFLAGS_RDSEED += -mrdseed
|
|
QMAKE_CFLAGS_AVX += -mavx
|
|
QMAKE_CFLAGS_AVX2 += -mavx2
|
|
QMAKE_CFLAGS_AVX512F += -mavx512f
|
|
QMAKE_CFLAGS_AVX512ER += -mavx512er
|
|
QMAKE_CFLAGS_AVX512CD += -mavx512cd
|
|
QMAKE_CFLAGS_AVX512PF += -mavx512pf
|
|
QMAKE_CFLAGS_AVX512DQ += -mavx512dq
|
|
QMAKE_CFLAGS_AVX512BW += -mavx512bw
|
|
QMAKE_CFLAGS_AVX512VL += -mavx512vl
|
|
QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma
|
|
QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi
|
|
QMAKE_CFLAGS_AVX512VNNI += -mavx512vnni
|
|
QMAKE_CFLAGS_AVX512IFMA += -mavx512ifma
|
|
QMAKE_CFLAGS_AVX512VBMI += -mavx512vbmi
|
|
QMAKE_CFLAGS_AVX512VBMI2 += -mavx512vbmi2
|
|
QMAKE_CFLAGS_AVX512BITALG += -mavx512bitalg
|
|
QMAKE_CFLAGS_AVX512POPCNTDQ += -mavx512vpopcntd
|
|
QMAKE_CFLAGS_AESNI += -maes
|
|
QMAKE_CFLAGS_SHANI += -msha
|
|
QMAKE_CFLAGS_VAES += -mvaes
|
|
QMAKE_CFLAGS_NEON += -mfpu=neon
|
|
QMAKE_CFLAGS_MIPS_DSP += -mdsp
|
|
QMAKE_CFLAGS_MIPS_DSPR2 += -mdspr2
|
|
|
|
# -march=haswell is supported as of GCC 4.9 and Clang 3.6
|
|
QMAKE_CFLAGS_ARCH_HASWELL = -march=core-avx2
|
|
|
|
# Wrapper tools that understand .o/.a files with GIMPLE instead of machine code
|
|
QMAKE_AR_LTCG = gcc-ar cqs
|
|
QMAKE_NM_LTCG = gcc-nm -P
|
|
QMAKE_RANLIB_LTCG = true # No need to run since gcc-ar has "s"
|
|
|
|
include(sanitize.conf)
|