From 877d5a5be62969375f841dd51d3d9090a7245cc8 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Wed, 12 Feb 2025 17:01:06 +0100 Subject: [PATCH] Add -O2 to flang flags when building on WoA in Release mode --- cmake/system.cmake | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/cmake/system.cmake b/cmake/system.cmake index 9c437fc995..ee2500da1a 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -628,6 +628,18 @@ set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CCOMMON_OPT}") endif() # TODO: not sure what PFLAGS is -hpa set(PFLAGS "${PFLAGS} ${CCOMMON_OPT} -I${TOPDIR} -DPROFILE ${COMMON_PROF}") +if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release") + +if ("${F_COMPILER}" STREQUAL "FLANG") +if (${CMAKE_Fortran_COMPILER_VERSION} VERSION_LESS_EQUAL 3) + set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fno-unroll-loops") +endif () +endif () +if (ARM64 AND CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*" AND CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -O2") +endif () +endif () + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${FCOMMON_OPT}") # TODO: not sure what FPFLAGS is -hpa @@ -653,7 +665,7 @@ if (CMAKE_Fortran_COMPILER) if ("${F_COMPILER}" STREQUAL "NAGFOR" OR "${F_COMPILER}" STREQUAL "CRAY" OR CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*") set(FILTER_FLAGS "-msse3;-mssse3;-msse4.1;-mavx;-mavx2,-mskylake-avx512") if (CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*") - message(STATUS "removing fortran flags") + message(STATUS "removing fortran flags not supported by the compiler") set(FILTER_FLAGS "${FILTER_FLAGS};-m32;-m64") endif () foreach (FILTER_FLAG ${FILTER_FLAGS}) @@ -684,13 +696,6 @@ if (${CMAKE_C_COMPILER_ID} MATCHES "IntelLLVM" AND ${CMAKE_SYSTEM_NAME} STREQUAL set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DNOCHANGE") endif () -if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release") -if ("${F_COMPILER}" STREQUAL "FLANG") -if (${CMAKE_Fortran_COMPILER_VERSION} VERSION_LESS_EQUAL 3) - set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fno-unroll-loops") -endif () -endif () -endif () if (NOT DEFINED SUFFIX) set(SUFFIX o)