8 #ifndef MTAANNOTATOR_H_
9 #define MTAANNOTATOR_H_
77 return F &&
F->getName().find(
"llvm.memset") != std::string::npos;
85 return F &&
F->getName().find(
"llvm.memcpy") != std::string::npos;
static LLVMModuleSet * getLLVMModuleSet()
SVFInstruction * getSVFInstruction(const Instruction *inst) const
void pruneAliasMHP(PointerAnalysis *pta)
Prune candidate instructions that non-mhp and non-alias with others.
void initialize(MHP *mhp, LockAnalysis *lsa)
Initialize.
virtual ~MTAAnnotator()
Destructor.
static const u32_t ANNO_ALIAS
bool isMemset(const Instruction *I)
Check if Function "F" is memset.
MTAAnnotator()
Constructor.
const Value * getLoadOperand(const Instruction *inst)
const Value * getStoreOperand(const Instruction *inst)
Get operand of store and load.
static const u32_t ANNO_MHP
Constant INTERLEV_FLAG values.
void performAnnotate()
Perform annotation.
void annotateDRCheck(Instruction *inst)
Annotation.
Set< const Instruction * > InstSet
void collectLoadStoreInst(SVFModule *mod)
Collect all load and store instruction.
static const u32_t ANNO_LOCAL
bool isMemcpy(const Instruction *I)
Check if Function "F" is memcpy.
void pruneThreadLocal(PointerAnalysis *pta)
Prune candidate instructions that are thread local.
const SVFFunction * getCallee(const CallSite cs)
Return callee of a callsite. Return null if this is an indirect call.
llvm::Instruction Instruction
llvm::Value Value
LLVM Basic classes.
std::unordered_set< Key, Hash, KeyEqual, Allocator > Set