[IslExprBuilder] Print accessed memory locations with RuntimeDebugBuilder
[polly-mirror.git] / lib / CMakeLists.txt
blob65db19844210b6a8c5a74068849f1449ec01b041
1 set(LLVM_NO_RTTI 1)
3 set(POLLY_JSON_FILES
4     External/JSON/json_reader.cpp
5     External/JSON/json_value.cpp
6     External/JSON/json_writer.cpp
9 set(ISL_CODEGEN_FILES
10     CodeGen/IslAst.cpp
11     CodeGen/IslExprBuilder.cpp
12     CodeGen/IslNodeBuilder.cpp
13     CodeGen/CodeGeneration.cpp)
15 if (GPU_CODEGEN)
16   set (GPGPU_CODEGEN_FILES
17        CodeGen/PPCGCodeGeneration.cpp
18        )
19 endif (GPU_CODEGEN)
21 # Compile ISL into a separate library.
22 add_subdirectory(External)
24 set(POLLY_HEADER_FILES)
25 if (MSVC_IDE OR XCODE)
26   file(GLOB_RECURSE POLLY_HEADER_FILES "${POLLY_SOURCE_DIR}/include/polly/*.h")
27 endif ()
29 add_polly_library(Polly
30   Analysis/DependenceInfo.cpp
31   Analysis/PolyhedralInfo.cpp
32   Analysis/ScopDetection.cpp
33   Analysis/ScopDetectionDiagnostic.cpp
34   Analysis/ScopInfo.cpp
35   Analysis/ScopBuilder.cpp
36   Analysis/ScopGraphPrinter.cpp
37   Analysis/ScopPass.cpp
38   Analysis/PruneUnprofitable.cpp
39   CodeGen/BlockGenerators.cpp
40   ${ISL_CODEGEN_FILES}
41   CodeGen/LoopGenerators.cpp
42   CodeGen/IRBuilder.cpp
43   CodeGen/Utils.cpp
44   CodeGen/RuntimeDebugBuilder.cpp
45   CodeGen/CodegenCleanup.cpp
46   ${GPGPU_CODEGEN_FILES}
47   Exchange/JSONExporter.cpp
48   Support/GICHelper.cpp
49   Support/SCEVAffinator.cpp
50   Support/SCEVValidator.cpp
51   Support/RegisterPasses.cpp
52   Support/ScopHelper.cpp
53   Support/ScopLocation.cpp
54   Support/ISLTools.cpp
55   Support/DumpModulePass.cpp
56   ${POLLY_JSON_FILES}
57   Transform/Canonicalization.cpp
58   Transform/CodePreparation.cpp
59   Transform/DeadCodeElimination.cpp
60   Transform/ScheduleOptimizer.cpp
61   Transform/FlattenSchedule.cpp
62   Transform/FlattenAlgo.cpp
63   Transform/DeLICM.cpp
64   Transform/Simplify.cpp
65   ${POLLY_HEADER_FILES}
66   )
68 if (GPU_CODEGEN)
69   target_link_libraries(Polly PollyPPCG)
70 endif (GPU_CODEGEN)
72 target_link_libraries(Polly ${ISL_TARGET})
74 if (BUILD_SHARED_LIBS)
75   target_link_libraries(Polly
76     LLVMSupport
77     LLVMCore
78     LLVMScalarOpts
79     LLVMInstCombine
80     LLVMTransformUtils
81     LLVMAnalysis
82     LLVMipo
83     LLVMMC
84 # The libraries below are required for darwin: http://PR26392
85     LLVMBitReader
86     LLVMMCParser
87     LLVMObject
88     LLVMProfileData
89     LLVMTarget
90     LLVMVectorize
91   )
92   link_directories(
93     ${LLVM_LIBRARY_DIR}
94   )
95 elseif (LLVM_LINK_LLVM_DYLIB)
96   target_link_libraries(Polly
97     LLVM
98   )
99   link_directories(
100     ${LLVM_LIBRARY_DIR}
101   )
102 endif()
104 # Build a monolithic Polly.a and a thin module LLVMPolly.moduleext that links to
105 # that static library.
106 if (MSVC)
107   # Add dummy target, because loadable modules are not supported on Windows
108   add_custom_target(LLVMPolly)
109   set_target_properties(LLVMPolly PROPERTIES FOLDER "Polly")
110 else ()
111   add_polly_loadable_module(LLVMPolly
112     Polly.cpp
113   )
115   target_link_libraries(LLVMPolly Polly)
117   set_target_properties(LLVMPolly
118     PROPERTIES
119     LINKER_LANGUAGE CXX
120     PREFIX "")
121 endif ()
123 if (TARGET intrinsics_gen)
124   # Check if we are building as part of an LLVM build
125   add_dependencies(Polly intrinsics_gen)
126 endif()