diff --git a/module.cpp b/module.cpp index be3b5fab..edcd8670 100644 --- a/module.cpp +++ b/module.cpp @@ -1107,10 +1107,14 @@ Module::writeObjectFileOrAssembly(llvm::TargetMachine *targetMachine, } llvm::PassManager pm; -#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) // LLVM 3.5+ - pm.add(new llvm::DataLayoutPass(*g->target->getDataLayout())); -#else +#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) + pm.add(new llvm::DataLayoutPass(*g->target->getDataLayout())); +#else // LLVM 3.6+ + llvm::DataLayoutPass *dlp= new llvm::DataLayoutPass(); + dlp->doInitialization(*module); + pm.add(dlp); #endif llvm::formatted_raw_ostream fos(of->os()); diff --git a/opt.cpp b/opt.cpp index a9f96a00..3fb68810 100644 --- a/opt.cpp +++ b/opt.cpp @@ -470,10 +470,14 @@ Optimize(llvm::Module *module, int optLevel) { new llvm::TargetLibraryInfo(llvm::Triple(module->getTargetTriple())); optPM.add(targetLibraryInfo); -#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) // LLVM 3.5+ - optPM.add(new llvm::DataLayoutPass(*g->target->getDataLayout())); -#else +#if defined(LLVM_3_2) || defined(LLVM_3_3) || defined(LLVM_3_4) optPM.add(new llvm::DataLayout(*g->target->getDataLayout())); +#elif defined(LLVM_3_5) + optPM.add(new llvm::DataLayoutPass(*g->target->getDataLayout())); +#else // LLVM 3.6+ + llvm::DataLayoutPass *dlp= new llvm::DataLayoutPass(); + dlp->doInitialization(*module); + optPM.add(dlp); #endif llvm::TargetMachine *targetMachine = g->target->GetTargetMachine();