10#ifndef KLEE_MODULEUTIL_H
11#define KLEE_MODULEUTIL_H
15#if LLVM_VERSION_CODE >= LLVM_VERSION(8, 0)
16#include "llvm/IR/InstrTypes.h"
18#include "llvm/IR/CallSite.h"
20#include "llvm/IR/Module.h"
38std::unique_ptr<llvm::Module>
39linkModules(std::vector<std::unique_ptr<llvm::Module>> &modules,
40 llvm::StringRef entryFunction, std::string &errorMsg);
53 const llvm::CallBase &cb,
55 const llvm::CallSite &cs,
57 bool moduleIsFullyLinked);
76bool loadFile(
const std::string &libraryName, llvm::LLVMContext &context,
77 std::vector<std::unique_ptr<llvm::Module>> &modules,
78 std::string &errorMsg);
#define LLVM_VERSION_CODE
#define LLVM_VERSION(major, minor)
std::unique_ptr< llvm::Module > linkModules(std::vector< std::unique_ptr< llvm::Module > > &modules, llvm::StringRef entryFunction, std::string &errorMsg)
bool loadFile(const std::string &libraryName, llvm::LLVMContext &context, std::vector< std::unique_ptr< llvm::Module > > &modules, std::string &errorMsg)
bool functionEscapes(const llvm::Function *f)
llvm::Function * getDirectCallTarget(const llvm::CallBase &cb, bool moduleIsFullyLinked)