Merge pull request #754 from ifilippov/master

Support LLVM trunk after r202168 r202190 revisions
This commit is contained in:
Dmitry Babokin
2014-02-26 16:19:42 +03:00
3 changed files with 20 additions and 8 deletions

View File

@@ -758,6 +758,17 @@ AddBitcodeToModule(const unsigned char *bitcode, int length,
// architecture and investigate what happened.
// Generally we allow library DataLayout to be subset of module
// DataLayout or library DataLayout to be empty.
#if defined(LLVM_3_5)
if (!VerifyDataLayoutCompatibility(module->getDataLayoutStr(),
bcModule->getDataLayoutStr())) {
Warning(SourcePos(), "Module DataLayout is incompatible with "
"library DataLayout:\n"
"Module DL: %s\n"
"Library DL: %s\n",
module->getDataLayoutStr().c_str(),
bcModule->getDataLayoutStr().c_str());
}
#else
if (!VerifyDataLayoutCompatibility(module->getDataLayout(),
bcModule->getDataLayout())) {
Warning(SourcePos(), "Module DataLayout is incompatible with "
@@ -767,6 +778,7 @@ AddBitcodeToModule(const unsigned char *bitcode, int length,
module->getDataLayout().c_str(),
bcModule->getDataLayout().c_str());
}
#endif
}
bcModule->setTargetTriple(mTriple.str());

View File

@@ -1098,8 +1098,8 @@ Module::writeObjectFileOrAssembly(llvm::TargetMachine *targetMachine,
}
llvm::PassManager pm;
#if defined(LLVM_3_1)
pm.add(new llvm::TargetData(*g->target->getDataLayout()));
#if defined(LLVM_3_5)
pm.add(new llvm::DataLayoutPass(*g->target->getDataLayout()));
#else
pm.add(new llvm::DataLayout(*g->target->getDataLayout()));
#endif

12
opt.cpp
View File

@@ -473,19 +473,19 @@ Optimize(llvm::Module *module, int optLevel) {
new llvm::TargetLibraryInfo(llvm::Triple(module->getTargetTriple()));
optPM.add(targetLibraryInfo);
#if defined(LLVM_3_1)
optPM.add(new llvm::TargetData(*g->target->getDataLayout()));
#if defined(LLVM_3_5)
optPM.add(new llvm::DataLayoutPass(*g->target->getDataLayout()));
#else
optPM.add(new llvm::DataLayout(*g->target->getDataLayout()));
#endif
llvm::TargetMachine *targetMachine = g->target->GetTargetMachine();
#ifdef LLVM_3_2
#ifdef LLVM_3_2
optPM.add(new llvm::TargetTransformInfo(targetMachine->getScalarTargetTransformInfo(),
targetMachine->getVectorTargetTransformInfo()));
#else // LLVM 3.3+
#else // LLVM 3.3+
targetMachine->addAnalysisPasses(optPM.getPM());
#endif
#endif
optPM.add(llvm::createIndVarSimplifyPass());