set(LLVM_NO_RTTI 1)
set(ISL_CODEGEN_FILES
CodeGen/IslAst.cpp
CodeGen/IslExprBuilder.cpp
CodeGen/IslNodeBuilder.cpp
CodeGen/CodeGeneration.cpp)
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 ()
set(POLLY_COMPONENTS
Support
Core
ScalarOpts
InstCombine
TransformUtils
Analysis
ipo
MC
Passes
Linker
IRReader
Analysis
BitReader
MCParser
Object
ProfileData
Target
TargetParser
Vectorize
)
add_llvm_pass_plugin(Polly
NO_MODULE
SUBPROJECT Polly
Analysis/DependenceInfo.cpp
Analysis/PolyhedralInfo.cpp
Analysis/ScopDetection.cpp
Analysis/ScopDetectionDiagnostic.cpp
Analysis/ScopInfo.cpp
Analysis/ScopBuilder.cpp
Analysis/ScopGraphPrinter.cpp
Analysis/ScopPass.cpp
Analysis/PruneUnprofitable.cpp
CodeGen/BlockGenerators.cpp
${ISL_CODEGEN_FILES}
CodeGen/LoopGenerators.cpp
CodeGen/LoopGeneratorsGOMP.cpp
CodeGen/LoopGeneratorsKMP.cpp
CodeGen/IRBuilder.cpp
CodeGen/Utils.cpp
CodeGen/RuntimeDebugBuilder.cpp
CodeGen/PerfMonitor.cpp
Exchange/JSONExporter.cpp
Support/GICHelper.cpp
Support/PollyDebug.cpp
Support/SCEVAffinator.cpp
Support/SCEVValidator.cpp
Support/RegisterPasses.cpp
Support/ScopHelper.cpp
Support/ScopLocation.cpp
Support/ISLTools.cpp
Support/DumpModulePass.cpp
Support/DumpFunctionPass.cpp
Support/VirtualInstruction.cpp
Transform/Canonicalization.cpp
Transform/CodePreparation.cpp
Transform/DeadCodeElimination.cpp
Transform/ScheduleOptimizer.cpp
Transform/ScheduleTreeTransform.cpp
Transform/FlattenSchedule.cpp
Transform/FlattenAlgo.cpp
Transform/ForwardOpTree.cpp
Transform/DeLICM.cpp
Transform/ZoneAlgo.cpp
Transform/Simplify.cpp
Transform/MaximalStaticExpansion.cpp
Transform/ScopInliner.cpp
Transform/ManualOptimizer.cpp
Transform/MatmulOptimizer.cpp
${POLLY_HEADER_FILES}
LINK_COMPONENTS
${POLLY_COMPONENTS}
)
if (MSVC_IDE OR XCODE)
setup_polly_source_groups(${CMAKE_CURRENT_LIST_DIR}
${CMAKE_CURRENT_LIST_DIR}/../include/polly)
endif()
target_link_libraries(Polly PUBLIC
${ISL_TARGET}
)
if (WIN32 OR CYGWIN OR NOT LLVM_ENABLE_PIC)
add_custom_target(LLVMPolly)
set_target_properties(LLVMPolly PROPERTIES FOLDER "Polly/Loadable Modules")
else ()
add_polly_loadable_module(LLVMPolly
Plugin/Polly.cpp
$<TARGET_OBJECTS:obj.Polly>
)
target_link_libraries(LLVMPolly PUBLIC ${ISL_TARGET})
set_target_properties(LLVMPolly
PROPERTIES
LINKER_LANGUAGE CXX
PREFIX "")
endif ()
if (TARGET intrinsics_gen)
add_dependencies(obj.Polly intrinsics_gen)
endif()