aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/Module
diff options
context:
space:
mode:
authorMartinNowack <martin.nowack@gmail.com>2014-04-15 14:54:52 +0200
committerMartinNowack <martin.nowack@gmail.com>2014-04-15 14:54:52 +0200
commit5e0682ee26e02c710abd284f9f965e7a2c9a9f32 (patch)
tree69bcaf2485b5b0dcecc32002de9335b667f65d0b /lib/Module
parent237899d2fe681e5ea70baef5104c43feba87dea2 (diff)
parent78e06cb737e3e54e6c7035822f39961679e7b367 (diff)
downloadklee-5e0682ee26e02c710abd284f9f965e7a2c9a9f32.tar.gz
Merge pull request #104 from MartinNowack/llvm_34
Merge support for LLVM 3.4
Diffstat (limited to 'lib/Module')
-rw-r--r--lib/Module/KModule.cpp13
-rw-r--r--lib/Module/ModuleUtil.cpp4
-rw-r--r--lib/Module/Optimize.cpp2
3 files changed, 14 insertions, 5 deletions
diff --git a/lib/Module/KModule.cpp b/lib/Module/KModule.cpp
index 2ecb14b8..e06e722a 100644
--- a/lib/Module/KModule.cpp
+++ b/lib/Module/KModule.cpp
@@ -375,13 +375,16 @@ void KModule::prepare(const Interpreter::ModuleOptions &opts,
// FIXME: Find a way that we can test programs without requiring
// this to be linked in, it makes low level debugging much more
// annoying.
- llvm::sys::Path path(opts.LibraryDir);
-#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 3)
- path.appendComponent("kleeRuntimeIntrinsic.bc");
+
+ SmallString<128> LibPath(opts.LibraryDir);
+ llvm::sys::path::append(LibPath,
+#if LLVM_VERSION_CODE >= LLVM_VERSION(3,3)
+ "kleeRuntimeIntrinsic.bc"
#else
- path.appendComponent("libkleeRuntimeIntrinsic.bca");
+ "libkleeRuntimeIntrinsic.bca"
#endif
- module = linkWithLibrary(module, path.c_str());
+ );
+ module = linkWithLibrary(module, LibPath.str());
// Add internal functions which are not used to check if instructions
// have been already visited
diff --git a/lib/Module/ModuleUtil.cpp b/lib/Module/ModuleUtil.cpp
index 58096de4..4f65d0e7 100644
--- a/lib/Module/ModuleUtil.cpp
+++ b/lib/Module/ModuleUtil.cpp
@@ -13,6 +13,10 @@
#include "../Core/Common.h"
#include "../Core/SpecialFunctionHandler.h"
+#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 4)
+#include "llvm/IR/LLVMContext.h"
+#endif
+
#if LLVM_VERSION_CODE >= LLVM_VERSION(3, 3)
#include "llvm/Bitcode/ReaderWriter.h"
#include "llvm/IR/Function.h"
diff --git a/lib/Module/Optimize.cpp b/lib/Module/Optimize.cpp
index 41a106f1..9c200bc8 100644
--- a/lib/Module/Optimize.cpp
+++ b/lib/Module/Optimize.cpp
@@ -124,7 +124,9 @@ static void AddStandardCompilePasses(PassManager &PM) {
addPass(PM, createFunctionInliningPass()); // Inline small functions
addPass(PM, createArgumentPromotionPass()); // Scalarize uninlined fn args
+#if LLVM_VERSION_CODE < LLVM_VERSION(3, 4)
addPass(PM, createSimplifyLibCallsPass()); // Library Call Optimizations
+#endif
addPass(PM, createInstructionCombiningPass()); // Cleanup for scalarrepl.
addPass(PM, createJumpThreadingPass()); // Thread jumps.
addPass(PM, createCFGSimplificationPass()); // Merge & remove BBs