aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/Module
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Module')
-rw-r--r--lib/Module/Checks.cpp6
-rw-r--r--lib/Module/IntrinsicCleaner.cpp10
-rw-r--r--lib/Module/KModule.cpp10
-rw-r--r--lib/Module/Optimize.cpp11
-rw-r--r--lib/Module/Passes.h18
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; }