Index: lib/CMakeLists.txt =================================================================== --- lib/CMakeLists.txt +++ lib/CMakeLists.txt @@ -67,10 +67,29 @@ ) if (GPU_CODEGEN) - target_link_libraries(Polly PollyPPCG) + llvm_map_components_to_libnames(NVLIBS NVPTX) + if (BUILD_SHARED_LIBS) + target_link_libraries(Polly + PollyPPCG + ${NVLIBS} + ) + elseif (LLVM_LINK_LLVM_DYLIB) + target_link_libraries(Polly INTERFACE + PollyPPCG + ) + else() + target_link_libraries(Polly INTERFACE + PollyPPCG + ${NVLIBS} + ) + endif () endif (GPU_CODEGEN) -target_link_libraries(Polly ${ISL_TARGET}) +if (BUILD_SHARED_LIBS) + target_link_libraries(Polly ${ISL_TARGET}) +else () + target_link_libraries(Polly INTERFACE ${ISL_TARGET}) +endif() if (BUILD_SHARED_LIBS) target_link_libraries(Polly @@ -94,7 +113,7 @@ ${LLVM_LIBRARY_DIR} ) elseif (LLVM_LINK_LLVM_DYLIB) - target_link_libraries(Polly + target_link_libraries(Polly INTERFACE LLVM ) link_directories( @@ -125,4 +144,3 @@ # Check if we are building as part of an LLVM build add_dependencies(Polly intrinsics_gen) endif() - Index: lib/Support/RegisterPasses.cpp =================================================================== --- lib/Support/RegisterPasses.cpp +++ lib/Support/RegisterPasses.cpp @@ -35,6 +35,7 @@ #include "polly/Support/DumpModulePass.h" #include "llvm/Analysis/CFGPrinter.h" #include "llvm/IR/LegacyPassManager.h" +#include "llvm/Support/TargetSelect.h" #include "llvm/Transforms/IPO.h" #include "llvm/Transforms/IPO/PassManagerBuilder.h" #include "llvm/Transforms/Scalar.h" @@ -205,6 +206,10 @@ #ifdef GPU_CODEGEN initializePPCGCodeGenerationPass(Registry); + LLVMInitializeNVPTXTarget(); + LLVMInitializeNVPTXTargetInfo(); + LLVMInitializeNVPTXTargetMC(); + LLVMInitializeNVPTXAsmPrinter(); #endif initializeCodePreparationPass(Registry); initializeDeadCodeElimPass(Registry);