diff options
Diffstat (limited to 'lib/Module')
-rw-r--r-- | lib/Module/Checks.cpp | 6 | ||||
-rw-r--r-- | lib/Module/IntrinsicCleaner.cpp | 10 | ||||
-rw-r--r-- | lib/Module/KModule.cpp | 10 | ||||
-rw-r--r-- | lib/Module/Optimize.cpp | 11 | ||||
-rw-r--r-- | lib/Module/Passes.h | 18 |
5 files changed, 50 insertions, 5 deletions
diff --git a/lib/Module/Checks.cpp b/lib/Module/Checks.cpp index 125e807a..18ef398a 100644 --- a/lib/Module/Checks.cpp +++ b/lib/Module/Checks.cpp @@ -26,7 +26,11 @@ #include "llvm/Type.h" #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Utils/BasicBlockUtils.h" -#include "llvm/Target/DataLayout.h" +#if LLVM_VERSION_CODE <= LLVM_VERSION(3, 1) +#include "llvm/Target/TargetData.h" +#else +#include "llvm/DataLayout.h" +#endif using namespace llvm; using namespace klee; diff --git a/lib/Module/IntrinsicCleaner.cpp b/lib/Module/IntrinsicCleaner.cpp index 41dc5724..fd0db91d 100644 --- a/lib/Module/IntrinsicCleaner.cpp +++ b/lib/Module/IntrinsicCleaner.cpp @@ -26,7 +26,11 @@ #include "llvm/Support/IRBuilder.h" #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Utils/BasicBlockUtils.h" -#include "llvm/Target/DataLayout.h" +#if LLVM_VERSION_CODE <= LLVM_VERSION(3, 1) +#include "llvm/Target/TargetData.h" +#else +#include "llvm/DataLayout.h" +#endif using namespace llvm; @@ -45,7 +49,11 @@ bool IntrinsicCleanerPass::runOnModule(Module &M) { bool IntrinsicCleanerPass::runOnBasicBlock(BasicBlock &b) { bool dirty = false; +#if LLVM_VERSION_CODE <= LLVM_VERSION(3, 1) + unsigned WordSize = TargetData.getPointerSizeInBits() / 8; +#else unsigned WordSize = DataLayout.getPointerSizeInBits() / 8; +#endif for (BasicBlock::iterator i = b.begin(), ie = b.end(); i != ie;) { IntrinsicInst *ii = dyn_cast<IntrinsicInst>(&*i); // increment now since LowerIntrinsic deletion makes iterator invalid. diff --git a/lib/Module/KModule.cpp b/lib/Module/KModule.cpp index eeaa10cf..ea86433e 100644 --- a/lib/Module/KModule.cpp +++ b/lib/Module/KModule.cpp @@ -40,7 +40,11 @@ #else #include "llvm/Support/Path.h" #endif -#include "llvm/Target/DataLayout.h" +#if LLVM_VERSION_CODE <= LLVM_VERSION(3, 1) +#include "llvm/Target/TargetData.h" +#else +#include "llvm/DataLayout.h" +#endif #include "llvm/Transforms/Scalar.h" #include <sstream> @@ -90,7 +94,11 @@ namespace { KModule::KModule(Module *_module) : module(_module), +#if LLVM_VERSION_CODE <= LLVM_VERSION(3, 1) + targetData(new TargetData(module)), +#else targetData(new DataLayout(module)), +#endif dbgStopPointFn(0), kleeMergeFn(0), infos(0), diff --git a/lib/Module/Optimize.cpp b/lib/Module/Optimize.cpp index fc37c1a9..20922e9e 100644 --- a/lib/Module/Optimize.cpp +++ b/lib/Module/Optimize.cpp @@ -27,7 +27,11 @@ #else #include "llvm/Support/DynamicLibrary.h" #endif -#include "llvm/Target/DataLayout.h" +#if LLVM_VERSION_CODE < LLVM_VERSION(3, 1) +#include "llvm/Target/TargetData.h" +#else +#include "llvm/DataLayout.h" +#endif #include "llvm/Target/TargetMachine.h" #include "llvm/Transforms/IPO.h" #include "llvm/Transforms/Scalar.h" @@ -178,8 +182,13 @@ void Optimize(Module* M) { if (VerifyEach) Passes.add(createVerifierPass()); +#if LLVM_VERSION_CODE < LLVM_VERSION(3, 1) + // Add an appropriate TargetData instance for this module... + addPass(Passes, new TargetData(M)); +#else // Add an appropriate DataLayout instance for this module... addPass(Passes, new DataLayout(M)); +#endif // DWD - Run the opt standard pass list as well. AddStandardCompilePasses(Passes); diff --git a/lib/Module/Passes.h b/lib/Module/Passes.h index 721a61ea..84ab2b13 100644 --- a/lib/Module/Passes.h +++ b/lib/Module/Passes.h @@ -22,7 +22,11 @@ namespace llvm { class Function; class Instruction; class Module; +#if LLVM_VERSION_CODE < LLVM_VERSION(3, 1) + class TargetData; +#else class DataLayout; +#endif class TargetLowering; class Type; } @@ -64,20 +68,32 @@ public: // variables (via intrinsic lowering). class IntrinsicCleanerPass : public llvm::ModulePass { static char ID; - const llvm::DataLayout &DataLayout; +#if LLVM_VERSION_CODE < LLVM_VERSION(3, 1) + const llvm::TargetData &DataLayout; +#else + const llvm::DataLayout &DL; +#endif llvm::IntrinsicLowering *IL; bool LowerIntrinsics; bool runOnBasicBlock(llvm::BasicBlock &b); public: +#if LLVM_VERSION_CODE < LLVM_VERSION(3, 1) + IntrinsicCleanerPass(const llvm::TargetData &TD, +#else IntrinsicCleanerPass(const llvm::DataLayout &TD, +#endif bool LI=true) #if LLVM_VERSION_CODE < LLVM_VERSION(2, 8) : llvm::ModulePass((intptr_t) &ID), #else : llvm::ModulePass(ID), #endif +#if LLVM_VERSION_CODE < LLVM_VERSION(3, 1) DataLayout(TD), +#else + DL(TD), +#endif IL(new llvm::IntrinsicLowering(TD)), LowerIntrinsics(LI) {} ~IntrinsicCleanerPass() { delete IL; } |