[polly] r307650 - [Polly][CMake] Use the CMake Package instead of llvm-config in out-of-tree builds
Philip Pfaffe via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 19 06:26:16 PDT 2017
Removing the dependency on llvm-config and opt was not intended! Aren't
there any buildbots testing this?
If so, can you try if this patch works for you?
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -28,14 +28,15 @@ if(NOT LLVM_MAIN_SRC_DIR)
if ("${POLLY_TEST_EXTRA_PATHS}" STREQUAL "${LLVM_TOOLS_BINARY_DIR}")
set(POLLY_TEST_EXTRA_PATHS "")
endif()
+ set(POLLY_TEST_DEPS LLVMPolly)
else ()
set(LLVM_OPT "${LLVM_TOOLS_BINARY_DIR}/opt")
set(LLVM_FILECHECK "${LLVM_TOOLS_BINARY_DIR}/FileCheck")
set(LLVM_NOT "${LLVM_TOOLS_BINARY_DIR}/not")
set(POLLY_TEST_EXTRA_PATHS "")
+ set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not)
endif()
-set(POLLY_TEST_DEPS LLVMPolly)
if (POLLY_BUNDLED_ISL)
list(APPEND POLLY_TEST_DEPS polly-isl-test)
endif()
2017-07-19 13:52 GMT+02:00 Michael Kruse <llvm-commits at meinersbur.de>:
> A post-commit review.
>
> 2017-07-11 13:24 GMT+02:00 Philip Pfaffe via llvm-commits
> <llvm-commits at lists.llvm.org>:
> > Author: pfaffe
> > Date: Tue Jul 11 04:24:25 2017
> > New Revision: 307650
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=307650&view=rev
> > Log:
> > [Polly][CMake] Use the CMake Package instead of llvm-config in
> out-of-tree builds
>
> Could you please remove the "[Polly]" tag before committing? There is
> no point of it in the Polly repository. Thank you.
>
>
>
> > Summary:
> > As of now, Polly uses llvm-config to set up LLVM dependencies in an
> out-of-tree build.
> >
> > This is problematic for two reasons:
> > 1) Right now, in-tree and out-of-tree builds in fact do different
> things. E.g., in an in-tree build, libPolly depends on a handful of LLVM
> libraries, while in an out-of-tree build it depends on all of them. This
> means that we often need to treat both paths seperately.
> > 2) I'm specifically unhappy with the way libPolly is linked right now,
> because it just blindly links against all the LLVM libs. That doesn't make
> a lot of sense. For instance, one of these libs is LLVMTableGen, which
> contains a command line definition of a -o option. This means that I can
> not link an out-of-tree libPolly into a tool which might want to offer a -o
> option as well.
> >
> > This patch (mostly) drop the use of llvm-config in favor of LLVMs
> exported cmake package. However, building Polly with unittests requires
> access to the gtest sources (in the LLVM source tree). If we're building
> against an LLVM installation, this source tree is unavailable and must
> specified. I'm using llvm-config to provide a default in this case.
> >
> > Reviewers: Meinersbur, grosser
> >
> > Reviewed By: grosser
> >
> > Subscribers: tstellar, bollu, chapuni, mgorny, pollydev, llvm-commits
> >
> > Differential Revision: https://reviews.llvm.org/D33299
> >
> > Modified:
> > polly/trunk/CMakeLists.txt
> > polly/trunk/cmake/CMakeLists.txt
> > polly/trunk/lib/CMakeLists.txt
> > polly/trunk/test/CMakeLists.txt
> > polly/trunk/test/lit.cfg
> > polly/trunk/test/lit.site.cfg.in
> >
> > Modified: polly/trunk/CMakeLists.txt
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/
> CMakeLists.txt?rev=307650&r1=307649&r2=307650&view=diff
> > ============================================================
> ==================
> > --- polly/trunk/CMakeLists.txt (original)
> > +++ polly/trunk/CMakeLists.txt Tue Jul 11 04:24:25 2017
> > @@ -4,112 +4,57 @@ if (NOT DEFINED LLVM_MAIN_SRC_DIR)
> > cmake_minimum_required(VERSION 3.4.3)
> >
> > # Where is LLVM installed?
> > - set(LLVM_INSTALL_ROOT "" CACHE PATH "Root of LLVM install.")
> > - # Check if the LLVM_INSTALL_ROOT valid.
> > - if( NOT EXISTS ${LLVM_INSTALL_ROOT}/include/llvm )
> > - message(FATAL_ERROR "LLVM_INSTALL_ROOT (${LLVM_INSTALL_ROOT}) is
> not a valid LLVM installation.")
> > - endif(NOT EXISTS ${LLVM_INSTALL_ROOT}/include/llvm)
> > - # FileCheck, not and llvm-lit are not install by default, warn the
> user to copy them.
> > - if( NOT EXISTS ${LLVM_INSTALL_ROOT}/bin/FileCheck
> > - OR NOT EXISTS ${LLVM_INSTALL_ROOT}/bin/not
> > - OR NOT EXISTS ${LLVM_INSTALL_ROOT}/bin/llvm-lit )
> > - message(WARNING "'FileCheck', 'not' and 'llvm-lit' are required by
> running regress tests, "
> > - "but they are not installed! Please copy them to "
> > - "${LLVM_INSTALL_ROOT}/bin.")
> > - endif()
> > - # Add the llvm header path.
> > - include_directories(${LLVM_INSTALL_ROOT}/include/)
> > + find_package(LLVM CONFIG REQUIRED)
> > + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
> > + include(HandleLLVMOptions)
> > + include(AddLLVM)
> >
> > - # Get LLVM's own libraries.
> > - execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config" --libs
> > - OUTPUT_VARIABLE LLVM_LIBS
> > - OUTPUT_STRIP_TRAILING_WHITESPACE)
> > -
> > - # Get the system librarys that will link into LLVM.
> > - execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config"
> --system-libs
> > - OUTPUT_VARIABLE LLVM_SYSTEM_LIBS
> > - OUTPUT_STRIP_TRAILING_WHITESPACE)
> > - message(STATUS "System libs required by LLVM: ${LLVM_SYSTEM_LIBS}")
> > -
> > - # Determine where LLVM stores its libraries.
> > - execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config"
> --libdir
> > - OUTPUT_VARIABLE LLVM_LIBRARY_DIR
> > - OUTPUT_STRIP_TRAILING_WHITESPACE)
> > - link_directories("${LLVM_LIBRARY_DIR}")
> > -
> > - # Now set the header paths.
> > - execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config"
> --includedir
> > - OUTPUT_VARIABLE LLVM_INCLUDE_DIR
> > - OUTPUT_STRIP_TRAILING_WHITESPACE)
> > - include_directories( ${LLVM_INCLUDE_DIR} )
> > -
> > - # Get the TARGET_TRIPLE
> > - execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config"
> --host-target
> > - OUTPUT_VARIABLE TARGET_TRIPLE
> > - OUTPUT_STRIP_TRAILING_WHITESPACE)
> > -
> > - # And then set the cxx flags.
> > - execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config"
> --cxxflags
> > - OUTPUT_VARIABLE LLVM_CXX_FLAGS
> > - OUTPUT_STRIP_TRAILING_WHITESPACE)
> > - set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} ${LLVM_CXX_FLAGS})
> > -
> > - # Check LLVM_ENABLE_ASSERTIONS
> > - execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config"
> --assertion-mode
> > - OUTPUT_VARIABLE LLVM_ENABLE_ASSERTIONS
> > - OUTPUT_STRIP_TRAILING_WHITESPACE)
> > - # Copied from LLVM's HandleLLVMOptions.cmake
> > - if( LLVM_ENABLE_ASSERTIONS )
> > - # MSVC doesn't like _DEBUG on release builds. See PR 4379.
> > - if( NOT MSVC )
> > - add_definitions( -D_DEBUG )
> > - endif()
> > - # On non-Debug builds cmake automatically defines NDEBUG, so we
> > - # explicitly undefine it:
> > - if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" )
> > - add_definitions( -UNDEBUG )
> > - # Also remove /D NDEBUG to avoid MSVC warnings about conflicting
> defines.
> > - foreach (flags_var_to_scrub
> > - CMAKE_CXX_FLAGS_RELEASE
> > - CMAKE_CXX_FLAGS_RELWITHDEBINFO
> > - CMAKE_CXX_FLAGS_MINSIZEREL
> > - CMAKE_C_FLAGS_RELEASE
> > - CMAKE_C_FLAGS_RELWITHDEBINFO
> > - CMAKE_C_FLAGS_MINSIZEREL)
> > - string (REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " "
> > - "${flags_var_to_scrub}" "${${flags_var_to_scrub}}")
> > - endforeach()
> > - endif()
> > - endif()
> > + # Add the llvm header path.
> > + include_directories(${LLVM_INCLUDE_DIRS})
> >
> > # Sources available, too?
> > - execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config"
> --src-root
> > - OUTPUT_VARIABLE MAIN_SRC_DIR
> > - OUTPUT_STRIP_TRAILING_WHITESPACE)
> > - set(LLVM_SOURCE_ROOT ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM source
> tree")
> > + if (LLVM_BUILD_MAIN_SRC_DIR)
> > + set(LLVM_SOURCE_ROOT ${LLVM_BUILD_MAIN_SRC_DIR} CACHE PATH
> > + "Path to LLVM source tree")
> > + else()
> > + execute_process(COMMAND "${LLVM_TOOLS_BINARY_DIR}/llvm-config"
> --src-root
> > + OUTPUT_VARIABLE MAIN_SRC_DIR
> > + OUTPUT_STRIP_TRAILING_WHITESPACE)
> > + set(LLVM_SOURCE_ROOT ${MAIN_SRC_DIR} CACHE PATH "Path to LLVM
> source tree")
> > + endif()
> >
> > # Enable unit tests if available.
> > set(UNITTEST_DIR ${LLVM_SOURCE_ROOT}/utils/unittest)
> > if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h)
> > - add_library(gtest
> > - ${UNITTEST_DIR}/googletest/src/gtest-all.cc
> > - ${UNITTEST_DIR}/googlemock/src/gmock-all.cc
> > - )
> > - target_include_directories(gtest
> > - PUBLIC
> > - "${UNITTEST_DIR}/googletest/include"
> > - "${UNITTEST_DIR}/googlemock/include"
> > -
> > - PRIVATE
> > - "${UNITTEST_DIR}/googletest"
> > - "${UNITTEST_DIR}/googlemock"
> > - )
> > - target_link_libraries(gtest -lpthread)
> > + # The build tree already exports the gtest target, which we can
> reuse
> > + if (TARGET gtest)
> > + # LLVM Doesn't export gtest's include directorys, so do that here
> > + set_target_properties(gtest
> > + PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
> > + "${UNITTEST_DIR}/googletest/include;${UNITTEST_DIR}/
> googlemock/include"
> > + )
> > + set(POLLY_GTEST_AVAIL 1)
> > + else()
> > + add_library(gtest
> > + ${UNITTEST_DIR}/googletest/src/gtest-all.cc
> > + ${UNITTEST_DIR}/googlemock/src/gmock-all.cc
> > + )
> > + target_include_directories(gtest
> > + PUBLIC
> > + "${UNITTEST_DIR}/googletest/include"
> > + "${UNITTEST_DIR}/googlemock/include"
> > +
> > + PRIVATE
> > + "${UNITTEST_DIR}/googletest"
> > + "${UNITTEST_DIR}/googlemock"
> > + )
> > + target_link_libraries(gtest -lpthread)
> >
> > - add_library(gtest_main ${UNITTEST_DIR}/UnitTestMain/TestMain.cpp)
> > - target_link_libraries(gtest_main gtest)
> > + add_library(gtest_main ${UNITTEST_DIR}/UnitTestMain/TestMain.cpp)
> > + target_link_libraries(gtest_main gtest)
> >
> > - set(POLLY_GTEST_AVAIL 1)
> > + set(POLLY_GTEST_AVAIL 1)
> > + endif()
> > endif()
> >
> > # Make sure the isl c files are built as fPIC
> >
> > Modified: polly/trunk/cmake/CMakeLists.txt
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/cmake/
> CMakeLists.txt?rev=307650&r1=307649&r2=307650&view=diff
> > ============================================================
> ==================
> > --- polly/trunk/cmake/CMakeLists.txt (original)
> > +++ polly/trunk/cmake/CMakeLists.txt Tue Jul 11 04:24:25 2017
> > @@ -1,9 +1,4 @@
> > # Keep this in sync with llvm/cmake/CMakeLists.txt!
> > -if (LLVM_INSTALL_ROOT)
> > - # this simplifies things down the road, by not requiring to
> distinguish
> > - # between in-tree and out of tree builds
> > - set(LLVM_BINARY_DIR ${LLVM_INSTALL_ROOT})
> > -endif()
> >
> > set(LLVM_INSTALL_PACKAGE_DIR "lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm")
> > set(POLLY_INSTALL_PACKAGE_DIR "lib${LLVM_LIBDIR_SUFFIX}/cmake/polly")
> >
> > Modified: polly/trunk/lib/CMakeLists.txt
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/
> CMakeLists.txt?rev=307650&r1=307649&r2=307650&view=diff
> > ============================================================
> ==================
> > --- polly/trunk/lib/CMakeLists.txt (original)
> > +++ polly/trunk/lib/CMakeLists.txt Tue Jul 11 04:24:25 2017
> > @@ -79,59 +79,42 @@ if (GPU_CODEGEN)
> > target_link_libraries(Polly PollyPPCG)
> > endif ()
> >
> > -# Add Polly's LLVM dependencies.
> > -# When built inside the LLVM source tree, these are CMake targets that
> will
> > -# depend on their dependencies and CMake ensures they are added in the
> right
> > -# order.
> > -# If Polly is built independently, just add all LLVM libraries.
> LLVM_ROOT_DIR
> > -# might have been configured to compile to individual libraries or a
> single
> > -# libLLVM.so (called dylib), reported by llvm-config, so there is no
> fixed list
> > -# of required libraries.
> > -if (DEFINED LLVM_MAIN_SRC_DIR)
> >
> > - # Polly-ACC requires the NVPTX backend to work. Ask LLVM about its
> libraries.
> > - set(nvptx_libs)
> > - if (GPU_CODEGEN)
> > - # This call emits an error if they NVPTX backend is not enable.
> > - llvm_map_components_to_libnames(nvptx_libs NVPTX)
> > - endif ()
> > +# Polly-ACC requires the NVPTX backend to work. Ask LLVM about its
> libraries.
> > +set(nvptx_libs)
> > +if (GPU_CODEGEN)
> > + # This call emits an error if they NVPTX backend is not enable.
> > + llvm_map_components_to_libnames(nvptx_libs NVPTX)
> > +endif ()
> >
> > - if (LLVM_LINK_LLVM_DYLIB)
> > - # The shlib/dylib contains all the LLVM components
> > - # (including NVPTX is enabled) already. Adding them to
> target_link_libraries
> > - # would cause them being twice in the address space
> > - # (their LLVM*.a/so and their copies in libLLVM.so)
> > - # which results in errors when the two instances try to register
> the same
> > - # command-line switches.
> > - target_link_libraries(Polly LLVM)
> > - else ()
> > - target_link_libraries(Polly
> > - LLVMSupport
> > - LLVMCore
> > - LLVMScalarOpts
> > - LLVMInstCombine
> > - LLVMTransformUtils
> > - LLVMAnalysis
> > - LLVMipo
> > - LLVMMC
> > - LLVMPasses
> > - ${nvptx_libs}
> > -# The libraries below are required for darwin: http://PR26392
> > - LLVMBitReader
> > - LLVMMCParser
> > - LLVMObject
> > - LLVMProfileData
> > - LLVMTarget
> > - LLVMVectorize
> > - )
> > - endif ()
> > +if (LLVM_LINK_LLVM_DYLIB)
> > + # The shlib/dylib contains all the LLVM components
> > + # (including NVPTX is enabled) already. Adding them to
> target_link_libraries
> > + # would cause them being twice in the address space
> > + # (their LLVM*.a/so and their copies in libLLVM.so)
> > + # which results in errors when the two instances try to register the
> same
> > + # command-line switches.
> > + target_link_libraries(Polly LLVM)
> > else ()
> > - # When Polly-ACC is enabled, we assume that the host LLVM was also
> built with
> > - # the NVPTX target enabled.
> > target_link_libraries(Polly
> > - ${LLVM_LIBS}
> > - ${LLVM_SYSTEM_LIBS}
> > - )
> > + LLVMSupport
> > + LLVMCore
> > + LLVMScalarOpts
> > + LLVMInstCombine
> > + LLVMTransformUtils
> > + LLVMAnalysis
> > + LLVMipo
> > + LLVMMC
> > + LLVMPasses
> > + ${nvptx_libs}
> > + # The libraries below are required for darwin: http://PR26392
> > + LLVMBitReader
> > + LLVMMCParser
> > + LLVMObject
> > + LLVMProfileData
> > + LLVMTarget
> > + LLVMVectorize
> > + )
> > endif ()
> >
> > # Create a loadable module Polly.so that can be loaded using
> >
> > Modified: polly/trunk/test/CMakeLists.txt
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/
> CMakeLists.txt?rev=307650&r1=307649&r2=307650&view=diff
> > ============================================================
> ==================
> > --- polly/trunk/test/CMakeLists.txt (original)
> > +++ polly/trunk/test/CMakeLists.txt Tue Jul 11 04:24:25 2017
> > @@ -1,178 +1,109 @@
> > -set(POLLY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
> > -set(POLLY_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..")
> > set(LLVM_SHLIBEXT "${CMAKE_SHARED_MODULE_SUFFIX}")
> >
> > add_custom_target(check-polly)
> > set_target_properties(check-polly PROPERTIES FOLDER "Polly")
> >
> > -if (NOT DEFINED LLVM_MAIN_SRC_DIR)
> > -
> > - # We are building polly out of tree, adjust the settings.
> > - # FIXME: FileCheck is not available in llvm install directory at the
> moment.
> > - set(LLVM_LIT ${LLVM_INSTALL_ROOT}/bin/llvm-lit)
> > - if (POLLY_BUNDLED_ISL)
> > - set(POLLY_TEST_DEPS LLVMPolly polly-isl-test)
> > - endif (POLLY_BUNDLED_ISL)
> > - if (POLLY_GTEST_AVAIL)
> > - list(APPEND POLLY_TEST_DEPS PollyUnitTests)
> > - endif ()
> > -
> > - set(LLVM_BINARY_DIR "${LLVM_INSTALL_ROOT}")
> > - set(LLVM_TOOLS_DIR "${LLVM_INSTALL_ROOT}/bin")
> > - set(LLVM_LIBS_DIR "${LLVM_INSTALL_ROOT}/lib")
> > - set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib")
> > -
> > - include(FindPythonInterp)
> > - if(PYTHONINTERP_FOUND)
> > - option(POLLY_TEST_DISABLE_BAR "Run Polly tests with
> --no-progress-bar" OFF)
> > - set(POLLY_TEST_EXTRA_ARGS)
> > - if (MSVC OR XCODE OR POLLY_TEST_DISABLE_BAR)
> > - set(POLLY_TEST_EXTRA_ARGS "--no-progress-bar")
> > - endif()
> > -
> > - option(POLLY_TEST_USE_VG "Run Polly tests under Valgrind" OFF)
> > - if(POLLY_TEST_USE_VG)
> > - set(POLLY_TEST_EXTRA_ARGS ${POLLY_TEST_EXTRA_ARGS} "--vg")
> > - endif ()
> > -
> > - # Parameters required for lit.site.cfg.in
> > - set(LLVM_SOURCE_DIR ${LLVM_SOURCE_ROOT})
> > - if (CMAKE_CFG_INTDIR STREQUAL ".")
> > - set(LLVM_BUILD_MODE ".")
> > - else ()
> > - set(LLVM_BUILD_MODE "%(build_mode)s")
> > - endif ()
> > - set(ENABLE_SHARED "1")
> > - set(SHLIBDIR "${LLVM_BINARY_DIR}/bin")
> > - set(LINK_POLLY_INTO_TOOLS "OFF")
> > -
> > - configure_file(
> > - ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
> > - ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
> > -
> > - add_custom_target(check-polly-tests
> > - COMMAND ${LLVM_LIT}
> > - --param polly_site_config=${CMAKE_
> CURRENT_BINARY_DIR}/lit.site.cfg
> > - --param polly_unit_site_config=${
> CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
> > - --param build_config=${CMAKE_CFG_INTDIR}
> > - -sv ${POLLY_TEST_EXTRA_ARGS}
> > - ${CMAKE_CURRENT_BINARY_DIR}
> > - DEPENDS ${POLLY_TEST_DEPS}
> > - COMMENT "Running Polly regression/unit tests")
> > - set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
> > - add_dependencies(check-polly check-polly-tests)
> > -
> > - if (POLLY_GTEST_AVAIL)
> > - configure_file(
> > - ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
> > - ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg)
> > -
> > - add_custom_target(check-polly-unittests
> > - COMMAND ${LLVM_LIT}
> > - --param polly_site_config=${CMAKE_
> CURRENT_BINARY_DIR}/Unit/lit.site.cfg
> > - --param build_config=${CMAKE_CFG_INTDIR}
> > - -sv ${POLLY_TEST_EXTRA_ARGS}
> > - ${CMAKE_CURRENT_BINARY_DIR}/Unit
> > - DEPENDS PollyUnitTests
> > - COMMENT "Running Polly unit tests")
> > - set_target_properties(check-polly-unittests PROPERTIES FOLDER
> "Polly")
> > - endif ()
> > - configure_file(
> > - ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
> > - ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
> > -
> > -
> > - if (POLLY_BUNDLED_ISL)
> > - add_custom_target(check-polly-isl
> > - command ${LLVM_LIT}
> > - --param polly_site_config=${CMAKE_
> CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg
> > - --param build_config=${CMAKE_CFG_INTDIR}
> > - -sv ${POLLY_TEST_EXTRA_ARGS}
> > - ${CMAKE_CURRENT_BINARY_DIR}
> > - DEPENDS polly-isl-test
> > - COMMENT "Running isl unit tests")
> > - set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
> > - endif (POLLY_BUNDLED_ISL)
> > +if(NOT LLVM_MAIN_SRC_DIR)
> > + find_program(LLVM_OPT NAMES opt HINTS ${LLVM_TOOLS_BINARY_DIR})
> > + find_program(LLVM_FILECHECK NAMES FileCheck HINTS
> ${LLVM_TOOLS_BINARY_DIR})
> > + find_program(LLVM_NOT NAMES not HINTS ${LLVM_TOOLS_BINARY_DIR})
> > + if (NOT LLVM_OPT)
> > + message(WARNING "LLVM's opt program could not be found. Please set
> LLVM_OPT.")
> > endif()
> > -
> > -else (NOT DEFINED LLVM_MAIN_SRC_DIR)
> > -
> > - set(LLVM_LIT ${LLVM_TOOLS_BINARY_DIR}/llvm-lit)
> > - set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not)
>
> You removed the dependency to llvm-config and opt. Was this intentional?
> I got lots of spurious test fails because I didn't know have to
> compile them manually before check-polly now.
>
> > - if (POLLY_BUNDLED_ISL)
> > - list(APPEND POLLY_TEST_DEPS polly-isl-test)
> > + if (NOT LLVM_FILECHECK)
> > + message(WARNING "LLVM's FileCheck program could not be found. "
> > + "Please set LLVM_FILECHECK. Please set LLVM_FILECHECK.")
> > + endif()
> > + if (NOT LLVM_NOT)
> > + message(WARNING "LLVM's not program could not be found. Please set
> LLVM_NOT.")
> > + endif()
> > + get_filename_component(EXTRA_PATHS ${LLVM_OPT} DIRECTORY)
> > + list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}")
> > + get_filename_component(EXTRA_PATHS ${LLVM_FILECHECK} DIRECTORY)
> > + list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}")
> > + get_filename_component(EXTRA_PATHS ${LLVM_NOT} DIRECTORY)
> > + list(APPEND POLLY_TEST_EXTRA_PATHS "${EXTRA_PATHS}")
> > + list(REMOVE_DUPLICATES POLLY_TEST_EXTRA_PATHS)
> > + message(STATUS "Extra paths: ${POLLY_TEST_EXTRA_PATHS}")
> > + if ("${POLLY_TEST_EXTRA_PATHS}" STREQUAL "${LLVM_TOOLS_BINARY_DIR}")
> > + set(POLLY_TEST_EXTRA_PATHS "")
> > endif()
> > - if (POLLY_GTEST_AVAIL)
> > - list(APPEND POLLY_TEST_DEPS PollyUnitTests)
> > - endif ()
> > -
> > - set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")
> > - set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")
> > - set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
> > - set(POLLY_LIB_DIR "${LLVM_LIBS_DIR}")
> > +else ()
> > + set(LLVM_OPT "${LLVM_TOOLS_BINARY_DIR}/opt")
> > + set(LLVM_FILECHECK "${LLVM_TOOLS_BINARY_DIR}/FileCheck")
> > + set(LLVM_NOT "${LLVM_TOOLS_BINARY_DIR}/not")
> > + set(POLLY_TEST_EXTRA_PATHS "")
> > +endif()
> > +
> > +set(POLLY_TEST_DEPS LLVMPolly)
> > +if (POLLY_BUNDLED_ISL)
> > + list(APPEND POLLY_TEST_DEPS polly-isl-test)
> > +endif()
> > +if (POLLY_GTEST_AVAIL)
> > + list(APPEND POLLY_TEST_DEPS PollyUnitTests)
> > +endif ()
> > +
> > +set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")
> > +set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")
> > +set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
> > +set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib")
> > +
> > +configure_lit_site_cfg(
> > + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
> > + ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
> > +
> > +# Run regression and unit tests
> > +add_lit_testsuite(check-polly-tests "Running polly regression tests"
> > + ${CMAKE_CURRENT_BINARY_DIR}
> > + PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
> > + polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
> > + DEPENDS ${POLLY_TEST_DEPS}
> > + )
> > +set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
> > +add_dependencies(check-polly check-polly-tests)
> >
> > +if (POLLY_GTEST_AVAIL)
> > configure_lit_site_cfg(
> > - ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
> > - ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
> > -
> > - # Run regression and unit tests
> > - add_lit_testsuite(check-polly-tests "Running polly regression tests"
> > - ${CMAKE_CURRENT_BINARY_DIR}
> > - PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
> > - polly_unit_site_config=${CMAKE_CURRENT_BINARY_DIR}/
> Unit/lit.site.cfg
> > - DEPENDS ${POLLY_TEST_DEPS}
> > + ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
> > + ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
> > )
> > - set_target_properties(check-polly-tests PROPERTIES FOLDER "Polly")
> > - add_dependencies(check-polly check-polly-tests)
> >
> > - if (POLLY_GTEST_AVAIL)
> > - configure_lit_site_cfg(
> > - ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
> > - ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
> > + # Run only unit tests
> > + add_lit_testsuite(check-polly-unittests "Running polly unit tests
> only"
> > + ${CMAKE_CURRENT_BINARY_DIR}/Unit
> > + PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.
> site.cfg
> > + DEPENDS PollyUnitTests
> > )
> > + set_target_properties(check-polly-unittests PROPERTIES FOLDER
> "Polly")
> > +endif ()
> > +
> > +configure_file(
> > + ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
> > + ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
> >
> > - # Run only unit tests
> > - add_lit_testsuite(check-polly-unittests "Running polly unit tests
> only"
> > - ${CMAKE_CURRENT_BINARY_DIR}/Unit
> > - PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.
> site.cfg
> > - DEPENDS PollyUnitTests
> > - )
> > - set_target_properties(check-polly-unittests PROPERTIES FOLDER
> "Polly")
> > - endif ()
> > -
> > - configure_file(
> > - ${CMAKE_CURRENT_SOURCE_DIR}/UnitIsl/lit.site.cfg.in
> > - ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/lit.site.cfg)
> > -
> > - if (POLLY_BUNDLED_ISL)
> > - add_lit_testsuite(check-polly-isl "Running isl unit tests only"
> > - ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl
> > - PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/
> lit.site.cfg
> > - DEPENDS polly-isl-test
> > - )
> > - set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
> > - endif (POLLY_BUNDLED_ISL)
> > -
> > - # Run polly-check-format as part of polly-check only if we are
> compiling with
> > - # clang, so clang-format is available.
> > - # if (TARGET clang-format) would be preferable, but this target is
> only added
> > - # after Polly, i.e. there is no such target yet at this point. The
> CMake cache
> > - # entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has
> been
> > - # configured at least once, i.e. format will be checked only after a
> rerun of
> > - # CMake's configure.
> > - if (LLVM_TOOL_CLANG_BUILD)
> > - add_dependencies(check-polly polly-check-format)
> > - endif ()
> > +if (POLLY_BUNDLED_ISL)
> > + add_lit_testsuite(check-polly-isl "Running isl unit tests only"
> > + ${CMAKE_CURRENT_BINARY_DIR}/UnitIsl
> > + PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/UnitIsl/
> lit.site.cfg
> > + DEPENDS polly-isl-test
> > + )
> > + set_target_properties(check-polly-isl PROPERTIES FOLDER "Polly")
> > +endif (POLLY_BUNDLED_ISL)
> >
> > -endif (NOT DEFINED LLVM_MAIN_SRC_DIR)
> > +# Run polly-check-format as part of polly-check only if we are
> compiling with
> > +# clang, so clang-format is available.
> > +# if (TARGET clang-format) would be preferable, but this target is only
> added
> > +# after Polly, i.e. there is no such target yet at this point. The
> CMake cache
> > +# entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has been
> > +# configured at least once, i.e. format will be checked only after a
> rerun of
> > +# CMake's configure.
> > +if (LLVM_TOOL_CLANG_BUILD)
> > + add_dependencies(check-polly polly-check-format)
> > +endif ()
> >
> > configure_file(
> > ${CMAKE_CURRENT_SOURCE_DIR}/update_check.py
> > ${CMAKE_CURRENT_BINARY_DIR}/update_check.py)
> > -file(COPY ${CMAKE_CURRENT_BINARY_DIR}/update_check.py
> > - DESTINATION ${LLVM_TOOLS_DIR}
> > - FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
> > - GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
> >
> > # Add a legacy target spelling: polly-test
> > add_custom_target(polly-test)
> >
> > Modified: polly/trunk/test/lit.cfg
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/lit.
> cfg?rev=307650&r1=307649&r2=307650&view=diff
> > ============================================================
> ==================
> > --- polly/trunk/test/lit.cfg (original)
> > +++ polly/trunk/test/lit.cfg Tue Jul 11 04:24:25 2017
> > @@ -39,7 +39,9 @@ if polly_obj_root is not None:
> > llvm_tools_dir = getattr(config, 'llvm_tools_dir', None)
> > if not llvm_tools_dir:
> > lit_config.fatal('No LLVM tools dir set!')
> > - path = os.path.pathsep.join((llvm_tools_dir,
> config.environment['PATH']))
> > + extra_paths = getattr(config, 'extra_paths', [])
> > + base_paths = [llvm_tools_dir, config.environment['PATH']]
> > + path = os.path.pathsep.join(base_paths + extra_paths)
> > config.environment['PATH'] = path
> >
> > llvm_libs_dir = getattr(config, 'llvm_libs_dir', None)
> >
> > Modified: polly/trunk/test/lit.site.cfg.in
> > URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/lit.
> site.cfg.in?rev=307650&r1=307649&r2=307650&view=diff
> > ============================================================
> ==================
> > --- polly/trunk/test/lit.site.cfg.in (original)
> > +++ polly/trunk/test/lit.site.cfg.in Tue Jul 11 04:24:25 2017
> > @@ -10,6 +10,7 @@ config.target_triple = "@TARGET_TRIPLE@"
> > config.enable_gpgpu_codegen = "@GPU_CODEGEN@"
> > config.link_polly_into_tools = "@LINK_POLLY_INTO_TOOLS@"
> > config.targets_to_build = "@TARGETS_TO_BUILD@"
> > +config.extra_paths = "@POLLY_TEST_EXTRA_PATHS@".split(";")
> >
> > ## Check the current platform with regex
> > import re
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170719/50bc8645/attachment.html>
More information about the llvm-commits
mailing list