1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00

static link polly into tools

llvm-svn: 203886
This commit is contained in:
Sebastian Pop 2014-03-14 04:04:14 +00:00
parent 1a5216f9bc
commit 420901fde5
8 changed files with 54 additions and 6 deletions

View File

@ -503,6 +503,8 @@ endif()
add_subdirectory(projects) add_subdirectory(projects)
option(WITH_POLLY "Build LLVM with Polly" ON) option(WITH_POLLY "Build LLVM with Polly" ON)
option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" OFF)
if(WITH_POLLY) if(WITH_POLLY)
if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt) if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt)
set(WITH_POLLY OFF) set(WITH_POLLY OFF)

View File

@ -498,6 +498,9 @@
/* Linker version detected at compile time. */ /* Linker version detected at compile time. */
#undef HOST_LINK_VERSION #undef HOST_LINK_VERSION
/* Define if we link Polly to the tools */
#cmakedefine LINK_POLLY_INTO_TOOLS
/* Installation directory for binary executables */ /* Installation directory for binary executables */
#cmakedefine LLVM_BINDIR "${LLVM_BINDIR}" #cmakedefine LLVM_BINDIR "${LLVM_BINDIR}"

View File

@ -121,4 +121,7 @@
/* Minor version of the LLVM API */ /* Minor version of the LLVM API */
#cmakedefine LLVM_VERSION_MINOR ${LLVM_VERSION_MINOR} #cmakedefine LLVM_VERSION_MINOR ${LLVM_VERSION_MINOR}
/* Define if we link Polly to the tools */
#cmakedefine LINK_POLLY_INTO_TOOLS
#endif #endif

View File

@ -1,5 +1,13 @@
add_llvm_tool_subdirectory(llvm-config) 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(opt)
add_llvm_tool_subdirectory(llvm-as) add_llvm_tool_subdirectory(llvm-as)
add_llvm_tool_subdirectory(llvm-dis) 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(lld)
add_llvm_external_project(lldb) 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' # Automatically add remaining sub-directories containing a 'CMakeLists.txt'
# file as external projects. # file as external projects.
add_llvm_implicit_external_projects() add_llvm_implicit_external_projects()

View File

@ -32,3 +32,12 @@ add_llvm_tool(bugpoint
bugpoint.cpp bugpoint.cpp
) )
set_target_properties(bugpoint PROPERTIES ENABLE_EXPORTS 1) 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)

View File

@ -109,6 +109,12 @@ namespace {
}; };
} }
#ifdef LINK_POLLY_INTO_TOOLS
namespace polly {
void initializePollyPasses(llvm::PassRegistry &Registry);
}
#endif
int main(int argc, char **argv) { int main(int argc, char **argv) {
#ifndef DEBUG_BUGPOINT #ifndef DEBUG_BUGPOINT
llvm::sys::PrintStackTraceOnErrorSignal(); llvm::sys::PrintStackTraceOnErrorSignal();
@ -130,6 +136,10 @@ int main(int argc, char **argv) {
initializeInstrumentation(Registry); initializeInstrumentation(Registry);
initializeTarget(Registry); initializeTarget(Registry);
#ifdef LINK_POLLY_INTO_TOOLS
polly::initializePollyPasses(Registry);
#endif
cl::ParseCommandLineOptions(argc, argv, cl::ParseCommandLineOptions(argc, argv,
"LLVM automatic testcase reducer. See\nhttp://" "LLVM automatic testcase reducer. See\nhttp://"
"llvm.org/cmds/bugpoint.html" "llvm.org/cmds/bugpoint.html"

View File

@ -32,3 +32,12 @@ add_llvm_tool(opt
opt.cpp opt.cpp
) )
set_target_properties(opt PROPERTIES ENABLE_EXPORTS 1) 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)

View File

@ -304,6 +304,12 @@ static TargetMachine* GetTargetMachine(Triple TheTriple) {
GetCodeGenOptLevel()); GetCodeGenOptLevel());
} }
#ifdef LINK_POLLY_INTO_TOOLS
namespace polly {
void initializePollyPasses(llvm::PassRegistry &Registry);
}
#endif
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// main for opt // main for opt
// //
@ -338,6 +344,10 @@ int main(int argc, char **argv) {
// supported. For now, just add CodeGenPrepare. // supported. For now, just add CodeGenPrepare.
initializeCodeGenPreparePass(Registry); initializeCodeGenPreparePass(Registry);
#ifdef LINK_POLLY_INTO_TOOLS
polly::initializePollyPasses(Registry);
#endif
cl::ParseCommandLineOptions(argc, argv, cl::ParseCommandLineOptions(argc, argv,
"llvm .bc -> .bc modular optimizer and analysis printer\n"); "llvm .bc -> .bc modular optimizer and analysis printer\n");