diff options
Diffstat (limited to 'llvm/tools/bugpoint/bugpoint.cpp')
-rw-r--r-- | llvm/tools/bugpoint/bugpoint.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/llvm/tools/bugpoint/bugpoint.cpp b/llvm/tools/bugpoint/bugpoint.cpp index c7644e75ae4b..d29a79ee3e13 100644 --- a/llvm/tools/bugpoint/bugpoint.cpp +++ b/llvm/tools/bugpoint/bugpoint.cpp @@ -18,8 +18,10 @@ #include "llvm/IR/LLVMContext.h" #include "llvm/IR/LegacyPassManager.h" #include "llvm/IR/LegacyPassNameParser.h" +#include "llvm/InitializePasses.h" #include "llvm/LinkAllIR.h" #include "llvm/LinkAllPasses.h" +#include "llvm/Passes/PassPlugin.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/InitLLVM.h" #include "llvm/Support/ManagedStatic.h" @@ -133,11 +135,9 @@ static void AddOptimizationPasses(legacy::FunctionPassManager &FPM, Builder.populateModulePassManager(FPM); } -#ifdef LINK_POLLY_INTO_TOOLS -namespace polly { -void initializePollyPasses(llvm::PassRegistry &Registry); -} -#endif +#define HANDLE_EXTENSION(Ext) \ + llvm::PassPluginLibraryInfo get##Ext##PluginInfo(); +#include "llvm/Support/Extension.def" int main(int argc, char **argv) { #ifndef DEBUG_BUGPOINT @@ -158,10 +158,6 @@ int main(int argc, char **argv) { initializeInstrumentation(Registry); initializeTarget(Registry); -#ifdef LINK_POLLY_INTO_TOOLS - polly::initializePollyPasses(Registry); -#endif - if (std::getenv("bar") == (char*) -1) { InitializeAllTargets(); InitializeAllTargetMCs(); @@ -233,6 +229,13 @@ int main(int argc, char **argv) { sys::Process::PreventCoreFiles(); #endif +// Needed to pull in symbols from statically linked extensions, including static +// registration. It is unused otherwise because bugpoint has no support for +// NewPM. +#define HANDLE_EXTENSION(Ext) \ + (void)get##Ext##PluginInfo(); +#include "llvm/Support/Extension.def" + if (Error E = D.run()) { errs() << toString(std::move(E)); return 1; |