From 1be4a16ec6db0708291758afd080905ba7d48849 Mon Sep 17 00:00:00 2001 From: xoviat Date: Sun, 28 Jan 2018 16:07:41 -0600 Subject: [PATCH 1/4] CMake: enable interprocedural optimization --- CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b5789119a..d70790f44 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,8 @@ ## Author: Hank Anderson ## -cmake_minimum_required(VERSION 2.8.5) +cmake_minimum_required(VERSION 3.9) # CMP0069 NEW +include(CheckIPOSupported) project(OpenBLAS C ASM) set(OpenBLAS_MAJOR_VERSION 0) set(OpenBLAS_MINOR_VERSION 3) @@ -147,6 +148,12 @@ endif() # add objects to the openblas lib add_library(${OpenBLAS_LIBNAME} ${LA_SOURCES} ${LAPACKE_SOURCES} ${RELA_SOURCES} ${TARGET_OBJS} ${OpenBLAS_DEF_FILE}) +check_ipo_supported(RESULT IPO_SUPPORTED) +if(IPO_SUPPORTED) + message(STATUS "Building with link-time code generation") + set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) +endif() + # Android needs to explicitly link against libm if(ANDROID) target_link_libraries(${OpenBLAS_LIBNAME} m) From 2b84c3ecbc592c426d3cd60a34a7a09eeffe4fb6 Mon Sep 17 00:00:00 2001 From: xoviat Date: Sun, 28 Jan 2018 16:35:50 -0600 Subject: [PATCH 2/4] CMake: add backward compatibility --- CMakeLists.txt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d70790f44..4f933dae2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,8 @@ ## Author: Hank Anderson ## -cmake_minimum_required(VERSION 3.9) # CMP0069 NEW -include(CheckIPOSupported) +cmake_minimum_required(VERSION 2.8.5) + project(OpenBLAS C ASM) set(OpenBLAS_MAJOR_VERSION 0) set(OpenBLAS_MINOR_VERSION 3) @@ -148,10 +148,14 @@ endif() # add objects to the openblas lib add_library(${OpenBLAS_LIBNAME} ${LA_SOURCES} ${LAPACKE_SOURCES} ${RELA_SOURCES} ${TARGET_OBJS} ${OpenBLAS_DEF_FILE}) -check_ipo_supported(RESULT IPO_SUPPORTED) -if(IPO_SUPPORTED) - message(STATUS "Building with link-time code generation") - set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) +if(POLICY CMP0990) + cmake_policy(SET CMP0990 NEW) + include(CheckIPOSupported) + check_ipo_supported(RESULT IPO_SUPPORTED) + if(IPO_SUPPORTED) + message(STATUS "Building with link-time code generation") + set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + endif() endif() # Android needs to explicitly link against libm From 2d107cd3966f9a12c45002883d3b1cea3f2101d7 Mon Sep 17 00:00:00 2001 From: xoviat Date: Tue, 30 Jan 2018 14:49:57 -0600 Subject: [PATCH 3/4] CMake: check IPO supported for Fortran as well --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f933dae2..d39c54c8f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,6 @@ ## cmake_minimum_required(VERSION 2.8.5) - project(OpenBLAS C ASM) set(OpenBLAS_MAJOR_VERSION 0) set(OpenBLAS_MINOR_VERSION 3) @@ -151,7 +150,7 @@ add_library(${OpenBLAS_LIBNAME} ${LA_SOURCES} ${LAPACKE_SOURCES} ${RELA_SOURCES} if(POLICY CMP0990) cmake_policy(SET CMP0990 NEW) include(CheckIPOSupported) - check_ipo_supported(RESULT IPO_SUPPORTED) + check_ipo_supported(RESULT IPO_SUPPORTED LANGUAGES C Fortran) if(IPO_SUPPORTED) message(STATUS "Building with link-time code generation") set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) From 56df26fe8210f7b47bd29c8d305babd333afd68e Mon Sep 17 00:00:00 2001 From: xoviat Date: Tue, 30 Jan 2018 14:50:28 -0600 Subject: [PATCH 4/4] CMake: update message --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d39c54c8f..9e3172a5f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,7 +152,7 @@ if(POLICY CMP0990) include(CheckIPOSupported) check_ipo_supported(RESULT IPO_SUPPORTED LANGUAGES C Fortran) if(IPO_SUPPORTED) - message(STATUS "Building with link-time code generation") + message(STATUS "Building with interprocedural optimization") set_property(TARGET ${OpenBLAS_LIBNAME} PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) endif() endif()