diff --git a/cbackend.cpp b/cbackend.cpp index 16cdc77b..369d738b 100644 --- a/cbackend.cpp +++ b/cbackend.cpp @@ -51,7 +51,11 @@ #include "llvm/IR/InlineAsm.h" #endif #include "llvm/Pass.h" -#include "llvm/PassManager.h" +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) + #include "llvm/PassManager.h" +#else // LLVM 3.7+ + #include "llvm/IR/LegacyPassManager.h" +#endif #if defined(LLVM_3_2) #include "llvm/TypeFinder.h" #else // LLVM_3_3 + @@ -5055,7 +5059,12 @@ MaskOpsCleanupPass::runOnBasicBlock(llvm::BasicBlock &bb) { bool WriteCXXFile(llvm::Module *module, const char *fn, int vectorWidth, const char *includeName) { + +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) llvm::PassManager pm; +#else // LLVM 3.7+ + llvm::legacy::PassManager pm; +#endif #if 0 if (const llvm::TargetData *td = targetMachine->getTargetData()) pm.add(new llvm::TargetData(*td)); diff --git a/func.cpp b/func.cpp index 0cfc5ded..d2f96afb 100644 --- a/func.cpp +++ b/func.cpp @@ -67,14 +67,17 @@ #include #include #endif -#include +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) + #include "llvm/PassManager.h" +#else // LLVM 3.7+ + #include "llvm/IR/LegacyPassManager.h" +#endif #include #include #include #include #include #include -#include #if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) // LLVM 3.5+ #include #include diff --git a/module.cpp b/module.cpp index a4e75588..48e97b3f 100644 --- a/module.cpp +++ b/module.cpp @@ -92,7 +92,11 @@ #endif #endif /* ISPC_NVPTX_ENABLED */ #endif -#include +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) + #include "llvm/PassManager.h" +#else // LLVM 3.7+ + #include "llvm/IR/LegacyPassManager.h" +#endif #include #include #include @@ -1393,7 +1397,11 @@ Module::writeObjectFileOrAssembly(llvm::TargetMachine *targetMachine, return false; } +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) llvm::PassManager pm; +#else // LLVM 3.7+ + llvm::legacy::PassManager pm; +#endif #if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) pm.add(new llvm::DataLayout(*g->target->getDataLayout())); #elif defined(LLVM_3_5) @@ -2895,7 +2903,12 @@ lCreateDispatchModule(std::map &functions) // Do some rudimentary cleanup of the final result and make sure that // the module is all ok. + +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) llvm::PassManager optPM; +#else // LLVM 3.7+ + llvm::legacy::PassManager optPM; +#endif optPM.add(llvm::createGlobalDCEPass()); optPM.add(llvm::createVerifierPass()); optPM.run(*module); diff --git a/opt.cpp b/opt.cpp index 7420d520..93d9991a 100644 --- a/opt.cpp +++ b/opt.cpp @@ -72,7 +72,11 @@ #if !defined(LLVM_3_2) && !defined(LLVM_3_3) // LLVM 3.4+ #include #endif -#include +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) + #include "llvm/PassManager.h" +#else // LLVM 3.7+ + #include "llvm/IR/LegacyPassManager.h" +#endif #include #if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) // LLVM 3.5+ #include @@ -457,10 +461,17 @@ public: DebugPassManager():number(0){} void add(llvm::Pass * P, int stage); bool run(llvm::Module& M) {return PM.run(M);} +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) llvm::PassManager& getPM() {return PM;} - +#else // LLVM 3.7+ + llvm::legacy::PassManager& getPM() {return PM;} +#endif private: +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) || defined(LLVM_3_5) || defined(LLVM_3_6) llvm::PassManager PM; +#else // LLVM 3.7+ + llvm::legacy::PassManager PM; +#endif int number; };