summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorSebastian Pop <spop@codeaurora.org>2014-03-14 04:04:14 +0000
committerSebastian Pop <spop@codeaurora.org>2014-03-14 04:04:14 +0000
commita59005be81f1213bd15bb3b436a06b12af522842 (patch)
tree7be881f2c66fbd07f943626a7d87f95842bd8f38 /llvm
parent6d0753d42a8344a23cc8b170ac29184cac47e8ce (diff)
downloadbcm5719-llvm-a59005be81f1213bd15bb3b436a06b12af522842.tar.gz
bcm5719-llvm-a59005be81f1213bd15bb3b436a06b12af522842.zip
static link polly into tools
llvm-svn: 203886
Diffstat (limited to 'llvm')
-rw-r--r--llvm/CMakeLists.txt2
-rw-r--r--llvm/include/llvm/Config/config.h.cmake3
-rw-r--r--llvm/include/llvm/Config/llvm-config.h.cmake3
-rw-r--r--llvm/tools/CMakeLists.txt14
-rw-r--r--llvm/tools/bugpoint/CMakeLists.txt9
-rw-r--r--llvm/tools/bugpoint/bugpoint.cpp10
-rw-r--r--llvm/tools/opt/CMakeLists.txt9
-rw-r--r--llvm/tools/opt/opt.cpp10
8 files changed, 54 insertions, 6 deletions
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 49d1296950a..237701818ff 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -503,6 +503,8 @@ endif()
add_subdirectory(projects)
option(WITH_POLLY "Build LLVM with Polly" ON)
+option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" OFF)
+
if(WITH_POLLY)
if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt)
set(WITH_POLLY OFF)
diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake
index 4a15197895b..ea1e75a76a0 100644
--- a/llvm/include/llvm/Config/config.h.cmake
+++ b/llvm/include/llvm/Config/config.h.cmake
@@ -498,6 +498,9 @@
/* Linker version detected at compile time. */
#undef HOST_LINK_VERSION
+/* Define if we link Polly to the tools */
+#cmakedefine LINK_POLLY_INTO_TOOLS
+
/* Installation directory for binary executables */
#cmakedefine LLVM_BINDIR "${LLVM_BINDIR}"
diff --git a/llvm/include/llvm/Config/llvm-config.h.cmake b/llvm/include/llvm/Config/llvm-config.h.cmake
index 2b828a1ffb0..65116cb469c 100644
--- a/llvm/include/llvm/Config/llvm-config.h.cmake
+++ b/llvm/include/llvm/Config/llvm-config.h.cmake
@@ -121,4 +121,7 @@
/* Minor version of the LLVM API */
#cmakedefine LLVM_VERSION_MINOR ${LLVM_VERSION_MINOR}
+/* Define if we link Polly to the tools */
+#cmakedefine LINK_POLLY_INTO_TOOLS
+
#endif
diff --git a/llvm/tools/CMakeLists.txt b/llvm/tools/CMakeLists.txt
index c3ebe18b8a5..13b7f5af85a 100644
--- a/llvm/tools/CMakeLists.txt
+++ b/llvm/tools/CMakeLists.txt
@@ -1,5 +1,13 @@
add_llvm_tool_subdirectory(llvm-config)
+# Build polly before the tools: the tools link against polly when
+# LINK_POLLY_INTO_TOOLS is set.
+if(WITH_POLLY)
+ add_llvm_external_project(polly)
+else(WITH_POLLY)
+ list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${LLVM_MAIN_SRC_DIR}/tools/polly")
+endif(WITH_POLLY)
+
add_llvm_tool_subdirectory(opt)
add_llvm_tool_subdirectory(llvm-as)
add_llvm_tool_subdirectory(llvm-dis)
@@ -67,12 +75,6 @@ if( NOT LLVM_INCLUDE_TOOLS STREQUAL "bootstrap-only" )
add_llvm_external_project(lld)
add_llvm_external_project(lldb)
- if(WITH_POLLY)
- add_llvm_external_project(polly)
- else(WITH_POLLY)
- list(APPEND LLVM_IMPLICIT_PROJECT_IGNORE "${LLVM_MAIN_SRC_DIR}/tools/polly")
- endif(WITH_POLLY)
-
# Automatically add remaining sub-directories containing a 'CMakeLists.txt'
# file as external projects.
add_llvm_implicit_external_projects()
diff --git a/llvm/tools/bugpoint/CMakeLists.txt b/llvm/tools/bugpoint/CMakeLists.txt
index b537a5d237d..d71e097918c 100644
--- a/llvm/tools/bugpoint/CMakeLists.txt
+++ b/llvm/tools/bugpoint/CMakeLists.txt
@@ -32,3 +32,12 @@ add_llvm_tool(bugpoint
bugpoint.cpp
)
set_target_properties(bugpoint PROPERTIES ENABLE_EXPORTS 1)
+
+if(WITH_POLLY AND LINK_POLLY_INTO_TOOLS)
+ target_link_libraries(bugpoint Polly)
+ if(POLLY_LINK_LIBS)
+ foreach(lib ${POLLY_LINK_LIBS})
+ target_link_libraries(bugpoint ${lib})
+ endforeach(lib)
+ endif(POLLY_LINK_LIBS)
+endif(WITH_POLLY AND LINK_POLLY_INTO_TOOLS)
diff --git a/llvm/tools/bugpoint/bugpoint.cpp b/llvm/tools/bugpoint/bugpoint.cpp
index b79434080dd..5c03b41abbe 100644
--- a/llvm/tools/bugpoint/bugpoint.cpp
+++ b/llvm/tools/bugpoint/bugpoint.cpp
@@ -109,6 +109,12 @@ namespace {
};
}
+#ifdef LINK_POLLY_INTO_TOOLS
+namespace polly {
+void initializePollyPasses(llvm::PassRegistry &Registry);
+}
+#endif
+
int main(int argc, char **argv) {
#ifndef DEBUG_BUGPOINT
llvm::sys::PrintStackTraceOnErrorSignal();
@@ -130,6 +136,10 @@ int main(int argc, char **argv) {
initializeInstrumentation(Registry);
initializeTarget(Registry);
+#ifdef LINK_POLLY_INTO_TOOLS
+ polly::initializePollyPasses(Registry);
+#endif
+
cl::ParseCommandLineOptions(argc, argv,
"LLVM automatic testcase reducer. See\nhttp://"
"llvm.org/cmds/bugpoint.html"
diff --git a/llvm/tools/opt/CMakeLists.txt b/llvm/tools/opt/CMakeLists.txt
index 1f76ab55511..1d3f08db7d2 100644
--- a/llvm/tools/opt/CMakeLists.txt
+++ b/llvm/tools/opt/CMakeLists.txt
@@ -32,3 +32,12 @@ add_llvm_tool(opt
opt.cpp
)
set_target_properties(opt PROPERTIES ENABLE_EXPORTS 1)
+
+if(WITH_POLLY AND LINK_POLLY_INTO_TOOLS)
+ target_link_libraries(opt Polly)
+ if(POLLY_LINK_LIBS)
+ foreach(lib ${POLLY_LINK_LIBS})
+ target_link_libraries(opt ${lib})
+ endforeach(lib)
+ endif(POLLY_LINK_LIBS)
+endif(WITH_POLLY AND LINK_POLLY_INTO_TOOLS)
diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp
index 4dd9544fc32..5a198816e67 100644
--- a/llvm/tools/opt/opt.cpp
+++ b/llvm/tools/opt/opt.cpp
@@ -304,6 +304,12 @@ static TargetMachine* GetTargetMachine(Triple TheTriple) {
GetCodeGenOptLevel());
}
+#ifdef LINK_POLLY_INTO_TOOLS
+namespace polly {
+void initializePollyPasses(llvm::PassRegistry &Registry);
+}
+#endif
+
//===----------------------------------------------------------------------===//
// main for opt
//
@@ -338,6 +344,10 @@ int main(int argc, char **argv) {
// supported. For now, just add CodeGenPrepare.
initializeCodeGenPreparePass(Registry);
+#ifdef LINK_POLLY_INTO_TOOLS
+ polly::initializePollyPasses(Registry);
+#endif
+
cl::ParseCommandLineOptions(argc, argv,
"llvm .bc -> .bc modular optimizer and analysis printer\n");
OpenPOWER on IntegriCloud