From 798d4be080a1cec07ef76016a483a702cae91968 Mon Sep 17 00:00:00 2001 From: Maneesh Gupta Date: Wed, 5 Oct 2016 13:06:22 +0530 Subject: [PATCH] clang-hipify -> hipify-clang. Also attempt to build it by default Change-Id: I694e6c772f5347c820d9bd6c9aa61d6d9696911e --- CMakeLists.txt | 14 ++-- clang-hipify/CMakeLists.txt | 77 ------------------ hipify-clang/CMakeLists.txt | 78 +++++++++++++++++++ {clang-hipify => hipify-clang}/README.md | 4 +- .../src/Cuda2Hip.cpp | 0 tests/{clang-hipify => hipify-clang}/axpy.cu | 0 tests/{clang-hipify => hipify-clang}/lit.cfg | 0 .../lit.site.cfg.in | 0 8 files changed, 85 insertions(+), 88 deletions(-) delete mode 100644 clang-hipify/CMakeLists.txt create mode 100644 hipify-clang/CMakeLists.txt rename {clang-hipify => hipify-clang}/README.md (91%) rename {clang-hipify => hipify-clang}/src/Cuda2Hip.cpp (100%) rename tests/{clang-hipify => hipify-clang}/axpy.cu (100%) rename tests/{clang-hipify => hipify-clang}/lit.cfg (100%) rename tests/{clang-hipify => hipify-clang}/lit.site.cfg.in (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index e1ce5ef9ae..bbd9b3b6fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,12 +123,10 @@ if(NOT DEFINED HIP_LIB_TYPE) endif() add_to_config(_buildInfo HIP_LIB_TYPE) -# Check if we need to build clang hipify -if(NOT DEFINED BUILD_CLANG_HIPIFY) - if(NOT DEFINED ENV{BUILD_CLANG_HIPIFY}) - set(BUILD_CLANG_HIPIFY 0) - else() - set(BUILD_CLANG_HIPIFY $ENV{BUILD_CLANG_HIPIFY}) +# Check if we need to build hipify-clang +if(NOT DEFINED HIPIFY_CLANG_LLVM_DIR) + if(DEFINED ENV{HIPIFY_CLANG_LLVM_DIR}) + set(HIPIFY_CLANG_LLVM_DIR $ENV{HIPIFY_CLANG_LLVM_DIR}) endif() endif() @@ -149,9 +147,7 @@ add_to_config(_buildInfo COMPILE_HIP_ATP_MARKER) add_custom_target(update_build_and_version_info ALL COMMAND make rebuild_cache) # Build clang hipify if enabled -if(BUILD_CLANG_HIPIFY) - add_subdirectory(clang-hipify) -endif() +add_subdirectory(hipify-clang) # Build hip_hcc if platform is hcc if(HIP_PLATFORM STREQUAL "hcc") diff --git a/clang-hipify/CMakeLists.txt b/clang-hipify/CMakeLists.txt deleted file mode 100644 index 71cac2f18c..0000000000 --- a/clang-hipify/CMakeLists.txt +++ /dev/null @@ -1,77 +0,0 @@ -cmake_minimum_required(VERSION 2.8.8) -project(hipify-clang) - -# Find LLVM package -find_package(LLVM 3.8 QUIET PATHS ${LLVM_DIR} NO_DEFAULT_PATH) -if (NOT ${LLVM_FOUND}) - message(FATAL_ERROR "Don't know where to find LLVM (v3.8) package. Please specify absolute path using -DLLVM_DIR") -endif() - -list(APPEND CMAKE_MODULE_PATH ${LLVM_CMAKE_DIR}) -include(AddLLVM) - -message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") - -include_directories(${LLVM_INCLUDE_DIRS}) -link_directories(${LLVM_LIBRARY_DIRS}) -add_definitions(${LLVM_DEFINITIONS}) -add_llvm_executable(hipify-clang src/Cuda2Hip.cpp ) -find_program(LIT_COMMAND lit) - -# Link against LLVM and CLANG tools libraries -target_link_libraries(hipify-clang - clangASTMatchers - clangFrontend - clangTooling - clangParse - clangSerialization - clangSema - clangEdit - clangLex - clangAnalysis - clangDriver - clangAST - clangToolingCore - clangRewrite - clangBasic - LLVMProfileData - LLVMSupport - LLVMMCParser - LLVMMC - LLVMBitReader - LLVMOption - LLVMCore) - -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -fno-rtti -fvisibility-inlines-hidden") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHIPIFY_CLANG_RES=\\\"${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}\\\"") - -install(TARGETS hipify-clang - DESTINATION bin) - -# tests -set(Python_ADDITIONAL_VERSIONS 2.7) -include(FindPythonInterp) -if( NOT PYTHONINTERP_FOUND ) - message(FATAL_ERROR - "Unable to find Python interpreter, required for builds and testing\n\n" - "Please install Python or specify the PYTHON_EXECUTABLE CMake variable.") -endif() - -set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR} ) - -configure_file( - ${CMAKE_SOURCE_DIR}/tests/clang-hipify/lit.site.cfg.in - ${CMAKE_CURRENT_BINARY_DIR}/tests/clang-hipify/lit.site.cfg - @ONLY) - -add_lit_testsuite(test-hipify "Running HIPify regression tests" - ${CMAKE_SOURCE_DIR}/tests/clang-hipify - PARAMS site_config=${CMAKE_CURRENT_BINARY_DIR}/tests/clang-hipify/lit.site.cfg - DEPENDS hipify-clang lit - ) - -add_custom_target(test-clang-hipify) -add_dependencies(test-clang-hipify test-hipify) -set_target_properties(test-clang-hipify PROPERTIES FOLDER "Tests") diff --git a/hipify-clang/CMakeLists.txt b/hipify-clang/CMakeLists.txt new file mode 100644 index 0000000000..6a5f30e2d1 --- /dev/null +++ b/hipify-clang/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 2.8.8) +project(hipify-clang) + +# Find LLVM package +find_package(LLVM 3.8 QUIET PATHS ${HIPIFY_CLANG_LLVM_DIR} NO_DEFAULT_PATH) +if (NOT ${LLVM_FOUND}) + message(STATUS "hipify-clang will not be built. To build it please specify absolute path to LLVM (v3.8) package using -DHIPIFY_CLANG_LLVM_DIR") +else() + list(APPEND CMAKE_MODULE_PATH ${LLVM_CMAKE_DIR}) + include(AddLLVM) + + message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") + + include_directories(${LLVM_INCLUDE_DIRS}) + link_directories(${LLVM_LIBRARY_DIRS}) + add_definitions(${LLVM_DEFINITIONS}) + add_llvm_executable(hipify-clang src/Cuda2Hip.cpp) + find_program(LIT_COMMAND lit) + + # Link against LLVM and CLANG tools libraries + target_link_libraries(hipify-clang + clangASTMatchers + clangFrontend + clangTooling + clangParse + clangSerialization + clangSema + clangEdit + clangLex + clangAnalysis + clangDriver + clangAST + clangToolingCore + clangRewrite + clangBasic + LLVMProfileData + LLVMSupport + LLVMMCParser + LLVMMC + LLVMBitReader + LLVMOption + LLVMCore) + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread -fno-rtti -fvisibility-inlines-hidden") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHIPIFY_CLANG_RES=\\\"${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}\\\"") + + install(TARGETS hipify-clang DESTINATION bin) + + # tests + set(Python_ADDITIONAL_VERSIONS 2.7) + include(FindPythonInterp) + if(NOT PYTHONINTERP_FOUND) + message(FATAL_ERROR + "Unable to find Python interpreter, required for builds and testing\n\n" + "Please install Python or specify the PYTHON_EXECUTABLE CMake variable.") + endif() + + set(BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) + + configure_file( + ${CMAKE_SOURCE_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" + ${CMAKE_SOURCE_DIR}/tests/hipify-clang + PARAMS site_config=${CMAKE_CURRENT_BINARY_DIR}/tests/hipify-clang/lit.site.cfg + DEPENDS hipify-clang lit + ) + + add_custom_target(test-hipify-clang) + add_dependencies(test-hipify-clang test-hipify) + set_target_properties(test-hipify-clang PROPERTIES FOLDER "Tests") +endif() + +# vim: ts=4:sw=4:expandtab:smartindent diff --git a/clang-hipify/README.md b/hipify-clang/README.md similarity index 91% rename from clang-hipify/README.md rename to hipify-clang/README.md index f95eed1fc8..6e58f719b7 100644 --- a/clang-hipify/README.md +++ b/hipify-clang/README.md @@ -25,12 +25,12 @@ tar xvfJ clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz - Enable build of hipify-clang and specify path to LLVM. -Note LLVM_DIR must be a full absolute path to the location extracted above. Here's an example assuming we extract the clang 3.8 package into ~/HIP/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04/ +Note HIPIFY_CLANG_LLVM_DIR must be a full absolute path to the location extracted above. Here's an example assuming we extract the clang 3.8 package into ~/HIP/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04/ ```shell cd HIP mkdir build cd build -cmake -DBUILD_CLANG_HIPIFY=1 -DLLVM_DIR=~/HIP/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04/ -DCMAKE_BUILD_TYPE=Release .. +cmake -DHIPIFY_CLANG_LLVM_DIR=~/HIP/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-14.04/ -DCMAKE_BUILD_TYPE=Release .. make make install ``` diff --git a/clang-hipify/src/Cuda2Hip.cpp b/hipify-clang/src/Cuda2Hip.cpp similarity index 100% rename from clang-hipify/src/Cuda2Hip.cpp rename to hipify-clang/src/Cuda2Hip.cpp diff --git a/tests/clang-hipify/axpy.cu b/tests/hipify-clang/axpy.cu similarity index 100% rename from tests/clang-hipify/axpy.cu rename to tests/hipify-clang/axpy.cu diff --git a/tests/clang-hipify/lit.cfg b/tests/hipify-clang/lit.cfg similarity index 100% rename from tests/clang-hipify/lit.cfg rename to tests/hipify-clang/lit.cfg diff --git a/tests/clang-hipify/lit.site.cfg.in b/tests/hipify-clang/lit.site.cfg.in similarity index 100% rename from tests/clang-hipify/lit.site.cfg.in rename to tests/hipify-clang/lit.site.cfg.in