From cdd849541f6a5f17c6db4c16b8d432b82bd1033e Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Mon, 23 Oct 2017 21:16:13 +0300 Subject: [PATCH 1/4] [HIPIFY] cmake: fix standalone build --- hipamd/hipify-clang/CMakeLists.txt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/hipamd/hipify-clang/CMakeLists.txt b/hipamd/hipify-clang/CMakeLists.txt index 355b0cea7a..2d9cbb1feb 100644 --- a/hipamd/hipify-clang/CMakeLists.txt +++ b/hipamd/hipify-clang/CMakeLists.txt @@ -75,15 +75,21 @@ if (HIPIFY_CLANG_TESTS) set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) + if (CMAKE_CURRENT_SOURCE_DIR EQUAL CMAKE_SOURCE_DIR) + set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + else() + set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..) + endif() + configure_file( - ${CMAKE_SOURCE_DIR}/tests/hipify-clang/lit.site.cfg.in - ${CMAKE_CURRENT_BINARY_DIR}/tests/hipify-clang/lit.site.cfg + ${SOURCE_DIR}/tests/hipify-clang/lit.site.cfg.in + ${BINARY_DIR}/tests/hipify-clang/lit.site.cfg @ONLY ) add_lit_testsuite(test-hipify "Running HIPify regression tests" - ${CMAKE_SOURCE_DIR}/tests/hipify-clang - PARAMS site_config=${CMAKE_CURRENT_BINARY_DIR}/tests/hipify-clang/lit.site.cfg + ${SOURCE_DIR}/tests/hipify-clang + PARAMS site_config=${BINARY_DIR}/tests/hipify-clang/lit.site.cfg DEPENDS hipify-clang lit ) From aa288fcf1fab4b7426ef88e3730cfbe65d63c6cc Mon Sep 17 00:00:00 2001 From: Chris Kitching Date: Tue, 24 Oct 2017 01:45:23 +0100 Subject: [PATCH 2/4] Tweak some version numbers in clang version compatibility checks Apparently a couple of those APIs changed in clang 5, not 4. Drat. --- hipamd/hipify-clang/src/Cuda2Hip.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hipamd/hipify-clang/src/Cuda2Hip.cpp b/hipamd/hipify-clang/src/Cuda2Hip.cpp index 0f73859893..1f0bcdba65 100644 --- a/hipamd/hipify-clang/src/Cuda2Hip.cpp +++ b/hipamd/hipify-clang/src/Cuda2Hip.cpp @@ -3031,7 +3031,7 @@ public: : Cuda2Hip(R, mainFileName) {} virtual bool handleBeginSource(CompilerInstance &CI -#if LLVM_VERSION_MAJOR < 4 +#if LLVM_VERSION_MAJOR <= 4 , StringRef Filename #endif ) override { @@ -3114,7 +3114,7 @@ public: if (_sm->isWrittenInMainFile(MacroNameTok.getLocation())) { // The getNumArgs function was rather unhelpfully renamed in clang 4.0. Its semantics // remain unchanged. -#if LLVM_VERSION_MAJOR > 3 +#if LLVM_VERSION_MAJOR > 4 #define GET_NUM_ARGS() getNumParams() #else #define GET_NUM_ARGS() getNumArgs() From 559d9a68aab1a40c3ca60d22303b3d84b2491a0e Mon Sep 17 00:00:00 2001 From: emankov Date: Tue, 24 Oct 2017 10:51:11 +0300 Subject: [PATCH 3/4] [HIPIFY] cmake: simplify build --- hipamd/hipify-clang/CMakeLists.txt | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/hipamd/hipify-clang/CMakeLists.txt b/hipamd/hipify-clang/CMakeLists.txt index 2d9cbb1feb..5f4f96fb8a 100644 --- a/hipamd/hipify-clang/CMakeLists.txt +++ b/hipamd/hipify-clang/CMakeLists.txt @@ -73,23 +73,15 @@ if (HIPIFY_CLANG_TESTS) # tests find_package(PythonInterp 2.7 REQUIRED EXACT) - set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) - - if (CMAKE_CURRENT_SOURCE_DIR EQUAL CMAKE_SOURCE_DIR) - set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - else() - set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..) - endif() - configure_file( - ${SOURCE_DIR}/tests/hipify-clang/lit.site.cfg.in - ${BINARY_DIR}/tests/hipify-clang/lit.site.cfg + $${CMAKE_CURRENT_LIST_DIR}/../tests/hipify-clang/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/tests/hipify-clang/lit.site.cfg @ONLY ) add_lit_testsuite(test-hipify "Running HIPify regression tests" - ${SOURCE_DIR}/tests/hipify-clang - PARAMS site_config=${BINARY_DIR}/tests/hipify-clang/lit.site.cfg + ${CMAKE_CURRENT_LIST_DIR}/../tests/hipify-clang + PARAMS site_config=${CMAKE_CURRENT_BINARY_DIR}/tests/hipify-clang/lit.site.cfg DEPENDS hipify-clang lit ) From 7c51376bbf0238885d21f07e6adab40d10c3a515 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Tue, 24 Oct 2017 14:16:05 +0300 Subject: [PATCH 4/4] [HIPIFY][fix] cmake: do not build hipify-clang if not asked + warn "hipify-clang will not be built" if HIPIFY_CLANG_LLVM_DIR is not specified. + fix typo in previous commit . --- hipamd/hipify-clang/CMakeLists.txt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/hipamd/hipify-clang/CMakeLists.txt b/hipamd/hipify-clang/CMakeLists.txt index 5f4f96fb8a..b9d009ad92 100644 --- a/hipamd/hipify-clang/CMakeLists.txt +++ b/hipamd/hipify-clang/CMakeLists.txt @@ -1,6 +1,15 @@ cmake_minimum_required(VERSION 2.8.8) project(hipify-clang) +set(BUILD_HIPIFY_CLANG 0 CACHE INTERNAL "") + +if (HIPIFY_CLANG_LLVM_DIR) + find_package(LLVM PATHS ${HIPIFY_CLANG_LLVM_DIR} REQUIRED) +else() + message(STATUS "hipify-clang will not be built. To build it please specify absolute path to LLVM 3.8 or higher using HIPIFY_CLANG_LLVM_DIR") + return() +endif() + option(HIPIFY_CLANG_TESTS "Build the tests for hipify-clang, if lit is installed" ON) # Disable the tests if `lit` is not installed. @@ -10,10 +19,6 @@ if (NOT LIT_COMMAND) message(STATUS "hipify-clang's tests are not being built because `lit` is not installed.") endif() -set(BUILD_HIPIFY_CLANG 0 CACHE INTERNAL "") - -find_package(LLVM PATHS ${HIPIFY_CLANG_LLVM_DIR} REQUIRED) - list(APPEND CMAKE_MODULE_PATH ${LLVM_CMAKE_DIR}) include(AddLLVM) @@ -74,7 +79,7 @@ if (HIPIFY_CLANG_TESTS) find_package(PythonInterp 2.7 REQUIRED EXACT) configure_file( - $${CMAKE_CURRENT_LIST_DIR}/../tests/hipify-clang/lit.site.cfg.in + ${CMAKE_CURRENT_LIST_DIR}/../tests/hipify-clang/lit.site.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/tests/hipify-clang/lit.site.cfg @ONLY )