summaryrefslogtreecommitdiffstats
path: root/clang/tools
diff options
context:
space:
mode:
authorSebastian Pop <spop@codeaurora.org>2014-03-14 04:04:27 +0000
committerSebastian Pop <spop@codeaurora.org>2014-03-14 04:04:27 +0000
commit17fac04433640dd9d3e7b63e4664ec531b04e50e (patch)
treebccaf42c70201d4db316247df3cf849ba71df1cc /clang/tools
parenta59005be81f1213bd15bb3b436a06b12af522842 (diff)
downloadbcm5719-llvm-17fac04433640dd9d3e7b63e4664ec531b04e50e.tar.gz
bcm5719-llvm-17fac04433640dd9d3e7b63e4664ec531b04e50e.zip
static link polly
llvm-svn: 203887
Diffstat (limited to 'clang/tools')
-rw-r--r--clang/tools/driver/CMakeLists.txt8
-rw-r--r--clang/tools/driver/cc1_main.cpp11
2 files changed, 19 insertions, 0 deletions
diff --git a/clang/tools/driver/CMakeLists.txt b/clang/tools/driver/CMakeLists.txt
index 9442ba65da9..f60162f5e10 100644
--- a/clang/tools/driver/CMakeLists.txt
+++ b/clang/tools/driver/CMakeLists.txt
@@ -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)
diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp
index 1c37c7ddeed..990c4fc3c84 100644
--- a/clang/tools/driver/cc1_main.cpp
+++ b/clang/tools/driver/cc1_main.cpp
@@ -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();
OpenPOWER on IntegriCloud