Add accelerator code generation pass skeleton
[polly-mirror.git] / test / CMakeLists.txt
blobe34811c71b120e63bec1ac315ecc9a6729d5e7ee
1 set(POLLY_TEST_DIRECTORIES
2   "AffineIterator"
3   "ScopInfo"
4   "ScheduleOptimizer"
5   "CodeGen"
6   "OpenMP"
7   "polybench"
8   "vect")
11 set(POLLY_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
12 set(POLLY_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..")
13 set(LLVM_SHLIBEXT "${CMAKE_SHARED_MODULE_SUFFIX}")
15 if (NOT DEFINED LLVM_MAIN_SRC_DIR)
17   # We are building polly out of tree, adjust the settings.
18   # FIXME: FileCheck is not available in llvm install directory at the moment.
19   set(LLVM_LIT ${LLVM_INSTALL_ROOT}/bin/llvm-lit)
20   set(POLLY_TEST_DEPS LLVMPolly)
22   set(LLVM_BINARY_DIR "${LLVM_INSTALL_ROOT}")
23   set(LLVM_TOOLS_DIR "${LLVM_INSTALL_ROOT}/bin")
24   set(LLVM_LIBS_DIR "${LLVM_INSTALL_ROOT}/lib")
25   set(POLLY_LIB_DIR "${POLLY_BINARY_DIR}/lib")
27   include(FindPythonInterp)
28   if(PYTHONINTERP_FOUND)
29     option(POLLY_TEST_DISABLE_BAR "Run Polly tests with --no-progress-bar" OFF)
30     set(POLLY_TEST_EXTRA_ARGS)
31     if (MSVC OR XCODE OR POLLY_TEST_DISABLE_BAR)
32       set(POLLY_TEST_EXTRA_ARGS "--no-progress-bar")
33     endif()
35     option(POLLY_TEST_USE_VG "Run Polly tests under Valgrind" OFF)
36     if(POLLY_TEST_USE_VG)
37       set(POLLY_TEST_EXTRA_ARGS ${POLLY_TEST_EXTRA_ARGS} "--vg")
38     endif ()
40     foreach(testdir ${POLLY_TEST_DIRECTORIES})
41       add_custom_target(polly-test-${testdir}
42         COMMAND ${LLVM_LIT}
43                     --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
44                     --param build_config=${CMAKE_CFG_INTDIR}
45                     -sv ${POLLY_TEST_EXTRA_ARGS}
46                     ${CMAKE_CURRENT_BINARY_DIR}/${testdir}
47                     DEPENDS ${POLLY_TEST_DEPS}
48                     COMMENT "Running Polly regression tests in ${testdir}")
49       set_target_properties(polly-test-${testdir} PROPERTIES FOLDER "Polly")
50     endforeach()
52     add_custom_target(check-polly
53       COMMAND ${LLVM_LIT}
54                   --param polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
55                   --param build_config=${CMAKE_CFG_INTDIR}
56                   -sv ${POLLY_TEST_EXTRA_ARGS}
57                   ${CMAKE_CURRENT_BINARY_DIR}
58                   DEPENDS ${POLLY_TEST_DEPS}
59                   COMMENT "Running Polly regression tests")
60     set_target_properties(check-polly PROPERTIES FOLDER "Polly")
61   endif()
63 else (NOT DEFINED LLVM_MAIN_SRC_DIR)
65   set(LLVM_LIT ${LLVM_TOOLS_BINARY_DIR}/llvm-lit)
66   set(POLLY_TEST_DEPS llvm-config opt LLVMPolly FileCheck not)
68   set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}")
69   set(LLVM_TOOLS_DIR "${LLVM_TOOLS_BINARY_DIR}")
70   set(LLVM_LIBS_DIR "${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
71   set(POLLY_LIB_DIR "${LLVM_LIBS_DIR}")
73   add_lit_testsuite(check-polly "Running polly regression tests"
74     ${CMAKE_CURRENT_BINARY_DIR}
75     PARAMS polly_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
76     DEPENDS ${POLLY_TEST_DEPS}
77     )
79   set_target_properties(check-polly PROPERTIES FOLDER "Polly")
81   # Run polly-check-format as part of polly-check only if we are compiling with
82   # clang, so clang-format is availbale.
83   # if (TARGET clang-format) would be preferable, but this target is only added
84   # after Polly, i.e. there is no such target yet at this point. The CMake cache
85   # entry LLVM_TOOL_CLANG_BUILD will only be defined after clang has been
86   # configured at least once, i.e. format will be checked only after a rerun of
87   # CMake's configure.
88   if (LLVM_TOOL_CLANG_BUILD)
89     add_dependencies(check-polly polly-check-format)
90   endif ()
92 endif (NOT DEFINED LLVM_MAIN_SRC_DIR)
94 configure_file(
95   ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
96   ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
98 configure_file(
99   ${CMAKE_CURRENT_SOURCE_DIR}/update_check.py
100   ${CMAKE_CURRENT_BINARY_DIR}/update_check.py)
101 file(COPY ${CMAKE_CURRENT_BINARY_DIR}/update_check.py
102   DESTINATION ${LLVM_TOOLS_DIR}
103   FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
104   GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
106 # Add a legacy target spelling: polly-test
107 add_custom_target(polly-test)
108 set_target_properties(polly-test PROPERTIES FOLDER "Polly")
109 add_dependencies(polly-test check-polly)