aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/Core
diff options
context:
space:
mode:
authorDaniel Schemmel <daniel@schemmel.net>2024-02-01 14:51:37 +0000
committerCristian Cadar <c.cadar@imperial.ac.uk>2024-02-16 21:35:55 +0000
commit325c6cdcab632a6824be8ca9a926f4c4573adbdb (patch)
tree2c896335b546ae6ec4197ae26155dc9760b6c913 /lib/Core
parentc966cc6aada0e401fa0fa7caf2c359bfc5c4eb9a (diff)
downloadklee-325c6cdcab632a6824be8ca9a926f4c4573adbdb.tar.gz
drop llvm 9 and 10
Diffstat (limited to 'lib/Core')
-rw-r--r--lib/Core/Executor.cpp32
-rw-r--r--lib/Core/GetElementPtrTypeIterator.h10
-rw-r--r--lib/Core/MemoryManager.cpp14
3 files changed, 0 insertions, 56 deletions
diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp
index 78b3dd35..d70a2c4e 100644
--- a/lib/Core/Executor.cpp
+++ b/lib/Core/Executor.cpp
@@ -77,11 +77,7 @@
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Process.h"
-#if LLVM_VERSION_CODE >= LLVM_VERSION(10, 0)
#include "llvm/Support/TypeSize.h"
-#else
-typedef unsigned TypeSize;
-#endif
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
@@ -1990,12 +1986,8 @@ void Executor::executeCall(ExecutionState &state, KInstruction *ki, Function *f,
argWidth = arguments[k]->getWidth();
}
-#if LLVM_VERSION_CODE >= LLVM_VERSION(11, 0)
MaybeAlign ma = cb.getParamAlign(k);
unsigned alignment = ma ? ma->value() : 0;
-#else
- unsigned alignment = cb.getParamAlignment(k);
-#endif
if (WordSize == Expr::Int32 && !alignment)
alignment = 4;
@@ -3245,11 +3237,7 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
return;
}
uint64_t iIdx = cIdx->getZExtValue();
-#if LLVM_VERSION_MAJOR >= 11
const auto *vt = cast<llvm::FixedVectorType>(iei->getType());
-#else
- const llvm::VectorType *vt = iei->getType();
-#endif
unsigned EltBits = getWidthForLLVMType(vt->getElementType());
if (iIdx >= vt->getNumElements()) {
@@ -3287,11 +3275,7 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) {
return;
}
uint64_t iIdx = cIdx->getZExtValue();
-#if LLVM_VERSION_MAJOR >= 11
const auto *vt = cast<llvm::FixedVectorType>(eei->getVectorOperandType());
-#else
- const llvm::VectorType *vt = eei->getVectorOperandType();
-#endif
unsigned EltBits = getWidthForLLVMType(vt->getElementType());
if (iIdx >= vt->getNumElements()) {
@@ -3502,10 +3486,6 @@ void Executor::bindInstructionConstants(KInstruction *KI) {
#endif
} else if (InsertValueInst *ivi = dyn_cast<InsertValueInst>(KI->inst)) {
KGEPInstruction *kgepi = static_cast<KGEPInstruction *>(KI);
-#if LLVM_VERSION_CODE <= LLVM_VERSION(10, 0)
- computeOffsets(kgepi, iv_type_begin(ivi), iv_type_end(ivi));
- assert(kgepi->indices.empty() && "InsertValue constant offset expected");
-#else
llvm::Value *agg = ivi->getAggregateOperand();
llvm::Type *current_type = agg->getType();
std::uint64_t offset = 0;
@@ -3526,14 +3506,8 @@ void Executor::bindInstructionConstants(KInstruction *KI) {
current_type = GetElementPtrInst::getTypeAtIndex(current_type, index);
}
kgepi->offset = offset;
-#endif
} else if (ExtractValueInst *evi = dyn_cast<ExtractValueInst>(KI->inst)) {
KGEPInstruction *kgepi = static_cast<KGEPInstruction *>(KI);
-#if LLVM_VERSION_CODE <= LLVM_VERSION(10, 0)
- computeOffsets(kgepi, ev_type_begin(evi), ev_type_end(evi));
- assert(kgepi->indices.empty() && "ExtractValue constant offset expected");
-#else
-
llvm::Value *agg = evi->getAggregateOperand();
llvm::Type *current_type = agg->getType();
uint64_t offset = 0;
@@ -3554,7 +3528,6 @@ void Executor::bindInstructionConstants(KInstruction *KI) {
current_type = GetElementPtrInst::getTypeAtIndex(current_type, index);
}
kgepi->offset = offset;
-#endif
}
}
@@ -4955,12 +4928,7 @@ size_t Executor::getAllocationAlignment(const llvm::Value *allocSite) const {
type = GO->getType();
}
} else if (const AllocaInst *AI = dyn_cast<AllocaInst>(allocSite)) {
-#if LLVM_VERSION_CODE <= LLVM_VERSION(10, 0)
- alignment = AI->getAlignment();
-
-#else
alignment = AI->getAlign().value();
-#endif
type = AI->getAllocatedType();
} else if (isa<InvokeInst>(allocSite) || isa<CallInst>(allocSite)) {
// FIXME: Model the semantics of the call to use the right alignment
diff --git a/lib/Core/GetElementPtrTypeIterator.h b/lib/Core/GetElementPtrTypeIterator.h
index 4e0314cb..e4ca8dc9 100644
--- a/lib/Core/GetElementPtrTypeIterator.h
+++ b/lib/Core/GetElementPtrTypeIterator.h
@@ -71,12 +71,7 @@ public:
llvm::Type *operator*() const { return CurTy; }
llvm::Type *getIndexedType() const {
-#if LLVM_VERSION_CODE >= LLVM_VERSION(11, 0)
return llvm::GetElementPtrInst::getTypeAtIndex(CurTy, getOperand());
-#else
- llvm::CompositeType *CT = cast<llvm::CompositeType>(CurTy);
- return CT->getTypeAtIndex(getOperand());
-#endif
}
// This is a non-standard operator->. It allows you to call methods on the
@@ -86,14 +81,9 @@ public:
llvm::Value *getOperand() const { return asValue(*OpIt); }
generic_gep_type_iterator& operator++() { // Preincrement
-#if LLVM_VERSION_CODE >= LLVM_VERSION(11, 0)
if (isa<llvm::StructType>(CurTy) || isa<llvm::ArrayType>(CurTy) ||
isa<llvm::VectorType>(CurTy)) {
CurTy = llvm::GetElementPtrInst::getTypeAtIndex(CurTy, getOperand());
-#else
- if (llvm::CompositeType *CT = dyn_cast<llvm::CompositeType>(CurTy)) {
- CurTy = CT->getTypeAtIndex(getOperand());
-#endif
} else if (CurTy->isPointerTy()) {
CurTy = CurTy->getPointerElementType();
} else {
diff --git a/lib/Core/MemoryManager.cpp b/lib/Core/MemoryManager.cpp
index 3b0f5064..9d291578 100644
--- a/lib/Core/MemoryManager.cpp
+++ b/lib/Core/MemoryManager.cpp
@@ -22,11 +22,7 @@ DISABLE_WARNING_DEPRECATED_DECLARATIONS
#include "llvm/IR/GlobalVariable.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/MathExtras.h"
-#if LLVM_VERSION_CODE >= LLVM_VERSION(10, 0)
#include "llvm/Support/Alignment.h"
-#else
-#include "llvm/Support/MathExtras.h"
-#endif
DISABLE_WARNING_POP
#include <cinttypes>
@@ -187,28 +183,18 @@ MemoryManager::MemoryManager(ArrayCache *_arrayCache)
stackFactory, nullptr);
// check invariants
-#if LLVM_VERSION_CODE >= LLVM_VERSION(10, 0)
llvm::Align pageAlignment(pageSize);
-#endif
for (auto &requestedSegment : requestedSegments) {
auto &segment1 = std::get<0>(requestedSegment);
auto &start1 = std::get<1>(requestedSegment);
auto &size1 = std::get<2>(requestedSegment);
// check for page alignment
// NOTE: sizes are assumed to be page aligned due to multiplication
-#if LLVM_VERSION_CODE >= LLVM_VERSION(10, 0)
if (start1 != 0 && !llvm::isAligned(pageAlignment, start1)) {
klee_error("Deterministic allocator: Requested start address for %s "
"is not page aligned (page size: %" PRIu64 " B)",
segment1.c_str(), pageAlignment.value());
}
-#else
- if (start1 != 0 && llvm::OffsetToAlignment(start1, pageSize) != 0) {
- klee_error("Deterministic allocator: Requested start address for %s "
- "is not page aligned (page size: %zu B)",
- segment1.c_str(), pageSize);
- }
-#endif
// check for overlap of segments
std::uintptr_t end1 = start1 + size1;