|
|
@@ -2,13 +2,12 @@ |
|
|
## Author: Hank Anderson <hank@statease.com> |
|
|
## Author: Hank Anderson <hank@statease.com> |
|
|
## Description: Ported from portion of OpenBLAS/Makefile.system |
|
|
## Description: Ported from portion of OpenBLAS/Makefile.system |
|
|
## Sets C related variables. |
|
|
## Sets C related variables. |
|
|
include(CheckCCompilerFlag) |
|
|
|
|
|
|
|
|
|
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "LSB" OR ${CMAKE_C_COMPILER_ID} MATCHES "Clang") |
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "LSB" OR ${CMAKE_C_COMPILER_ID} MATCHES "Clang") |
|
|
|
|
|
|
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -Wall") |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -Wall") |
|
|
set(COMMON_PROF "${COMMON_PROF} -fno-inline") |
|
|
set(COMMON_PROF "${COMMON_PROF} -fno-inline") |
|
|
set(NO_UNINITIALIZED_WARN "-Wno-uninitialized") |
|
|
set(NO_UNINITIALIZED_WARN "-Wno-uninitialized") |
|
|
|
|
|
set(GCC_VERSION ${CMAKE_C_COMPILER_VERSION}) |
|
|
|
|
|
|
|
|
if (QUIET_MAKE) |
|
|
if (QUIET_MAKE) |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} ${NO_UNINITIALIZED_WARN} -Wno-unused") |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} ${NO_UNINITIALIZED_WARN} -Wno-unused") |
|
|
@@ -37,14 +36,14 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "LS |
|
|
|
|
|
|
|
|
if (LOONGARCH64) |
|
|
if (LOONGARCH64) |
|
|
if (BINARY64) |
|
|
if (BINARY64) |
|
|
CHECK_C_COMPILER_FLAG("-mabi=lp64d" COMPILER_SUPPORT_LP64D_ABI) |
|
|
|
|
|
|
|
|
CHECK_CXX_COMPILER_FLAG("-mabi=lp64d" COMPILER_SUPPORT_LP64D_ABI) |
|
|
if(COMPILER_SUPPORT_LP64D_ABI) |
|
|
if(COMPILER_SUPPORT_LP64D_ABI) |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=lp64d") |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=lp64d") |
|
|
else() |
|
|
else() |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=lp64") |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=lp64") |
|
|
endif () |
|
|
endif () |
|
|
else () |
|
|
else () |
|
|
CHECK_C_COMPILER_FLAG("-mabi=ilp32d" COMPILER_SUPPORT_ILP32D_ABI) |
|
|
|
|
|
|
|
|
CHECK_CXX_COMPILER_FLAG("-mabi=ilp32d" COMPILER_SUPPORT_ILP32D_ABI) |
|
|
if(COMPILER_SUPPORT_ILP32D_ABI) |
|
|
if(COMPILER_SUPPORT_ILP32D_ABI) |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=ilp32d") |
|
|
set(CCOMMON_OPT "${CCOMMON_OPT} -mabi=ilp32d") |
|
|
else() |
|
|
else() |
|
|
@@ -140,7 +139,6 @@ endif () |
|
|
if (${CORE} STREQUAL COOPERLAKE) |
|
|
if (${CORE} STREQUAL COOPERLAKE) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT NO_AVX512) |
|
|
if (NOT NO_AVX512) |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 10.1 OR ${GCC_VERSION} VERSION_EQUAL 10.1) |
|
|
if (${GCC_VERSION} VERSION_GREATER 10.1 OR ${GCC_VERSION} VERSION_EQUAL 10.1) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=cooperlake") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=cooperlake") |
|
|
else () |
|
|
else () |
|
|
@@ -153,7 +151,6 @@ endif () |
|
|
if (${CORE} STREQUAL SAPPHIRERAPIDS) |
|
|
if (${CORE} STREQUAL SAPPHIRERAPIDS) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT NO_AVX512) |
|
|
if (NOT NO_AVX512) |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 11.0 OR ${GCC_VERSION} VERSION_EQUAL 11.0) |
|
|
if (${GCC_VERSION} VERSION_GREATER 11.0 OR ${GCC_VERSION} VERSION_EQUAL 11.0) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=sapphirerapids") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=sapphirerapids") |
|
|
else () |
|
|
else () |
|
|
@@ -167,7 +164,6 @@ if (${CORE} STREQUAL ZEN) |
|
|
if (HAVE_AVX512VL) |
|
|
if (HAVE_AVX512VL) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT NO_AVX512) |
|
|
if (NOT NO_AVX512) |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 13.0 OR ${GCC_VERSION} VERSION_EQUAL 13.0) |
|
|
if (${GCC_VERSION} VERSION_GREATER 13.0 OR ${GCC_VERSION} VERSION_EQUAL 13.0) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=znver4") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=znver4") |
|
|
else () |
|
|
else () |
|
|
@@ -180,7 +176,6 @@ endif () |
|
|
|
|
|
|
|
|
if (${CORE} STREQUAL A64FX) |
|
|
if (${CORE} STREQUAL A64FX) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 11.0 OR ${GCC_VERSION} VERSION_EQUAL 11.0) |
|
|
if (${GCC_VERSION} VERSION_GREATER 11.0 OR ${GCC_VERSION} VERSION_EQUAL 11.0) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=a64fx") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=a64fx") |
|
|
else () |
|
|
else () |
|
|
@@ -194,7 +189,6 @@ if (${CORE} STREQUAL NEOVERSEN2) |
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE) |
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2") |
|
|
else () |
|
|
else () |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4) |
|
|
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2") |
|
|
else () |
|
|
else () |
|
|
@@ -209,7 +203,6 @@ if (${CORE} STREQUAL NEOVERSEV1) |
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE) |
|
|
if (${CMAKE_C_COMPILER_ID} STREQUAL "PGI" AND NOT NO_SVE) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8.4-a+sve -mtune=neoverse-v1") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -Msve_intrinsics -march=armv8.4-a+sve -mtune=neoverse-v1") |
|
|
else () |
|
|
else () |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4) |
|
|
if (${GCC_VERSION} VERSION_GREATER 10.4 OR ${GCC_VERSION} VERSION_EQUAL 10.4) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.4-a+sve -mtune=neoverse-v1") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.4-a+sve -mtune=neoverse-v1") |
|
|
else () |
|
|
else () |
|
|
@@ -221,7 +214,6 @@ endif () |
|
|
|
|
|
|
|
|
if (${CORE} STREQUAL NEOVERSEN1) |
|
|
if (${CORE} STREQUAL NEOVERSEN1) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 9.4 OR ${GCC_VERSION} VERSION_EQUAL 9.4) |
|
|
if (${GCC_VERSION} VERSION_GREATER 9.4 OR ${GCC_VERSION} VERSION_EQUAL 9.4) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=neoverse-n1") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -march=armv8.2-a+sve -mtune=neoverse-n1") |
|
|
else () |
|
|
else () |
|
|
@@ -266,23 +258,21 @@ endif () |
|
|
|
|
|
|
|
|
if (${CORE} STREQUAL POWER10) |
|
|
if (${CORE} STREQUAL POWER10) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 10.2 OR ${GCC_VERSION} VERSION_EQUAL 10.2) |
|
|
if (${GCC_VERSION} VERSION_GREATER 10.2 OR ${GCC_VERSION} VERSION_EQUAL 10.2) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math") |
|
|
else () |
|
|
else () |
|
|
message(FATAL_ERROR "Compiler GCC.${GCC_VERSION} does not support Power10." ) |
|
|
|
|
|
|
|
|
message(FATAL_ERROR "Compiler GCC ${GCC_VERSION} does not support Power10." ) |
|
|
endif() |
|
|
endif() |
|
|
endif () |
|
|
endif () |
|
|
endif () |
|
|
endif () |
|
|
|
|
|
|
|
|
if (${CORE} STREQUAL POWER9) |
|
|
if (${CORE} STREQUAL POWER9) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
if (NOT DYNAMIC_ARCH) |
|
|
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) |
|
|
|
|
|
if (${GCC_VERSION} VERSION_GREATER 5.0 OR ${GCC_VERSION} VERSION_EQUAL 5.0) |
|
|
if (${GCC_VERSION} VERSION_GREATER 5.0 OR ${GCC_VERSION} VERSION_EQUAL 5.0) |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power9 -mtune=power9 -mvsx -fno-fast-math") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power9 -mtune=power9 -mvsx -fno-fast-math") |
|
|
else () |
|
|
else () |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math") |
|
|
set (CCOMMON_OPT "${CCOMMON_OPT} -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math") |
|
|
message(WARNING "Compiler GCC.${GCC_VERSION} does not fully support Power9.") |
|
|
|
|
|
|
|
|
message(WARNING "Compiler GCC ${GCC_VERSION} does not fully support Power9.") |
|
|
endif () |
|
|
endif () |
|
|
endif () |
|
|
endif () |
|
|
endif () |
|
|
endif () |
|
|
|