Skip to content

Commit 453efbd

Browse files
authored
Merge pull request #5128 from martin-frbg/issue5120
Add -O2 to flang flags when building on WoA in Release mode
2 parents 8d487ef + 877d5a5 commit 453efbd

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

cmake/system.cmake

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,18 @@ set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CCOMMON_OPT}")
628628
endif()
629629
# TODO: not sure what PFLAGS is -hpa
630630
set(PFLAGS "${PFLAGS} ${CCOMMON_OPT} -I${TOPDIR} -DPROFILE ${COMMON_PROF}")
631+
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
632+
633+
if ("${F_COMPILER}" STREQUAL "FLANG")
634+
if (${CMAKE_Fortran_COMPILER_VERSION} VERSION_LESS_EQUAL 3)
635+
set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fno-unroll-loops")
636+
endif ()
637+
endif ()
638+
if (ARM64 AND CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*" AND CMAKE_SYSTEM_NAME STREQUAL "Windows")
639+
set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -O2")
640+
endif ()
641+
endif ()
642+
631643

632644
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${FCOMMON_OPT}")
633645
# TODO: not sure what FPFLAGS is -hpa
@@ -653,7 +665,7 @@ if (CMAKE_Fortran_COMPILER)
653665
if ("${F_COMPILER}" STREQUAL "NAGFOR" OR "${F_COMPILER}" STREQUAL "CRAY" OR CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*")
654666
set(FILTER_FLAGS "-msse3;-mssse3;-msse4.1;-mavx;-mavx2,-mskylake-avx512")
655667
if (CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*")
656-
message(STATUS "removing fortran flags")
668+
message(STATUS "removing fortran flags not supported by the compiler")
657669
set(FILTER_FLAGS "${FILTER_FLAGS};-m32;-m64")
658670
endif ()
659671
foreach (FILTER_FLAG ${FILTER_FLAGS})
@@ -684,13 +696,6 @@ if (${CMAKE_C_COMPILER_ID} MATCHES "IntelLLVM" AND ${CMAKE_SYSTEM_NAME} STREQUAL
684696
set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DNOCHANGE")
685697
endif ()
686698

687-
if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
688-
if ("${F_COMPILER}" STREQUAL "FLANG")
689-
if (${CMAKE_Fortran_COMPILER_VERSION} VERSION_LESS_EQUAL 3)
690-
set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fno-unroll-loops")
691-
endif ()
692-
endif ()
693-
endif ()
694699

695700
if (NOT DEFINED SUFFIX)
696701
set(SUFFIX o)

0 commit comments

Comments
 (0)