mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-27 18:28:14 +00:00
2133cb9a24
The methods in ScopBuilder are used for the construction of a Scop, while the remaining classes of ScopInfo are required by all passes that use Polly's polyhedral analysis. llvm-svn: 273982
114 lines
2.5 KiB
CMake
114 lines
2.5 KiB
CMake
set(LLVM_NO_RTTI 1)
|
|
|
|
set(POLLY_JSON_FILES
|
|
JSON/json_reader.cpp
|
|
JSON/json_value.cpp
|
|
JSON/json_writer.cpp
|
|
)
|
|
|
|
set(ISL_CODEGEN_FILES
|
|
CodeGen/IslAst.cpp
|
|
CodeGen/IslExprBuilder.cpp
|
|
CodeGen/IslNodeBuilder.cpp
|
|
CodeGen/CodeGeneration.cpp)
|
|
|
|
if (GPU_CODEGEN)
|
|
set (GPGPU_CODEGEN_FILES)
|
|
endif (GPU_CODEGEN)
|
|
|
|
# Compile ISL into a separate library.
|
|
add_subdirectory(External)
|
|
|
|
set(POLLY_HEADER_FILES)
|
|
if (MSVC_IDE OR XCODE)
|
|
file(GLOB_RECURSE POLLY_HEADER_FILES "${POLLY_SOURCE_DIR}/include/polly/*.h")
|
|
endif ()
|
|
|
|
add_polly_library(Polly
|
|
Analysis/DependenceInfo.cpp
|
|
Analysis/ScopDetection.cpp
|
|
Analysis/ScopDetectionDiagnostic.cpp
|
|
Analysis/ScopInfo.cpp
|
|
Analysis/ScopBuilder.cpp
|
|
Analysis/ScopGraphPrinter.cpp
|
|
Analysis/ScopPass.cpp
|
|
CodeGen/BlockGenerators.cpp
|
|
${ISL_CODEGEN_FILES}
|
|
CodeGen/LoopGenerators.cpp
|
|
CodeGen/IRBuilder.cpp
|
|
CodeGen/Utils.cpp
|
|
CodeGen/RuntimeDebugBuilder.cpp
|
|
CodeGen/CodegenCleanup.cpp
|
|
${GPGPU_CODEGEN_FILES}
|
|
Exchange/JSONExporter.cpp
|
|
Support/GICHelper.cpp
|
|
Support/SCEVAffinator.cpp
|
|
Support/SCEVValidator.cpp
|
|
Support/RegisterPasses.cpp
|
|
Support/ScopHelper.cpp
|
|
Support/ScopLocation.cpp
|
|
${POLLY_JSON_FILES}
|
|
Transform/Canonicalization.cpp
|
|
Transform/CodePreparation.cpp
|
|
Transform/DeadCodeElimination.cpp
|
|
Transform/ScheduleOptimizer.cpp
|
|
${POLLY_HEADER_FILES}
|
|
)
|
|
|
|
target_link_libraries(Polly PollyISL)
|
|
|
|
if (BUILD_SHARED_LIBS)
|
|
target_link_libraries(Polly
|
|
LLVMSupport
|
|
LLVMCore
|
|
LLVMScalarOpts
|
|
LLVMInstCombine
|
|
LLVMTransformUtils
|
|
LLVMAnalysis
|
|
LLVMipo
|
|
LLVMMC
|
|
# The libraries below are required for darwin: http://PR26392
|
|
LLVMBitReader
|
|
LLVMMCParser
|
|
LLVMObject
|
|
LLVMProfileData
|
|
LLVMTarget
|
|
LLVMVectorize
|
|
)
|
|
link_directories(
|
|
${LLVM_LIBRARY_DIR}
|
|
)
|
|
elseif (LLVM_LINK_LLVM_DYLIB)
|
|
target_link_libraries(Polly
|
|
LLVM
|
|
)
|
|
link_directories(
|
|
${LLVM_LIBRARY_DIR}
|
|
)
|
|
endif()
|
|
|
|
# Build a monolithic Polly.a and a thin module LLVMPolly.moduleext that links to
|
|
# that static library.
|
|
if (MSVC)
|
|
# Add dummy target, because loadable modules are not supported on Windows
|
|
add_custom_target(LLVMPolly)
|
|
set_target_properties(LLVMPolly PROPERTIES FOLDER "Polly")
|
|
else ()
|
|
add_polly_loadable_module(LLVMPolly
|
|
Polly.cpp
|
|
)
|
|
|
|
target_link_libraries(LLVMPolly Polly)
|
|
|
|
set_target_properties(LLVMPolly
|
|
PROPERTIES
|
|
LINKER_LANGUAGE CXX
|
|
PREFIX "")
|
|
endif ()
|
|
|
|
if (TARGET intrinsics_gen)
|
|
# Check if we are building as part of an LLVM build
|
|
add_dependencies(Polly intrinsics_gen)
|
|
endif()
|
|
|