]> granicus.if.org Git - clang/commitdiff
static link polly
authorSebastian Pop <spop@codeaurora.org>
Fri, 14 Mar 2014 04:04:27 +0000 (04:04 +0000)
committerSebastian Pop <spop@codeaurora.org>
Fri, 14 Mar 2014 04:04:27 +0000 (04:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203887 91177308-0d34-0410-b5e6-96231b3b80d8

tools/driver/CMakeLists.txt
tools/driver/cc1_main.cpp

index 9442ba65da9da593e0a843626587c470a5b694bb..f60162f5e10bf3fdf668acf1afaf9cd2fc796e29 100644 (file)
@@ -110,3 +110,11 @@ if(CLANG_ORDER_FILE)
   target_link_libraries(clang "-Wl,-order_file,${CLANG_ORDER_FILE}")
 endif()
 
+if(WITH_POLLY AND LINK_POLLY_INTO_TOOLS)
+  target_link_libraries(clang Polly)
+  if(POLLY_LINK_LIBS)
+    foreach(lib ${POLLY_LINK_LIBS})
+      target_link_libraries(clang ${lib})
+    endforeach(lib)
+  endif(POLLY_LINK_LIBS)
+endif(WITH_POLLY AND LINK_POLLY_INTO_TOOLS)
index 1c37c7ddeeddb15568e8907da5622a484d8e87ff..990c4fc3c84e212a4de9bb7f69cb658a3491de15 100644 (file)
@@ -57,6 +57,12 @@ static void LLVMErrorHandler(void *UserData, const std::string &Message,
   exit(GenCrashDiag ? 70 : 1);
 }
 
+#ifdef LINK_POLLY_INTO_TOOLS
+namespace polly {
+void initializePollyPasses(llvm::PassRegistry &Registry);
+}
+#endif
+
 int cc1_main(const char **ArgBegin, const char **ArgEnd,
              const char *Argv0, void *MainAddr) {
   std::unique_ptr<CompilerInstance> Clang(new CompilerInstance());
@@ -68,6 +74,11 @@ int cc1_main(const char **ArgBegin, const char **ArgEnd,
   llvm::InitializeAllAsmPrinters();
   llvm::InitializeAllAsmParsers();
 
+#ifdef LINK_POLLY_INTO_TOOLS
+  llvm::PassRegistry &Registry = *llvm::PassRegistry::getPassRegistry();
+  polly::initializePollyPasses(Registry);
+#endif
+
   // Buffer diagnostics from argument parsing so that we can output them using a
   // well formed diagnostic object.
   IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();