46 std::vector<Value* >
values;
52 std::vector<Value* >
values;
105 assert(!
val->getType()->isVoidTy() &&
"expecting non-void value for MD!");
106 std::vector<Value* >
values;
115 inst->setMetadata(
str, MDNode::get(inst->getContext(),
nullptr));
123 assert(!
val->getType()->isVoidTy() &&
"expecting non-void value for MD!");
124 std::vector<Value* >
values;
140 std::vector<Value* >&)
const
143 assert(
val &&
"value should not be null");
145 bool hasFlag =
false;
149 for (
unsigned k = 0;
k <
mdNode->getNumOperands(); ++
k)
const char * SB_SLICESOURCE
Saber annotations.
bool hasDRNotCheckFlag(const Instruction *inst) const
bool evalMDTag(const Instruction *inst, const Value *val, std::string str, std::vector< Value * > &) const
evaluate llvm metadata
void removeMDTag(Instruction *inst, std::string str)
const char * SB_SLICESINK
bool hasSBSourceFlag(Instruction *inst) const
SB Has flag methods.
const char * SB_INFESIBLE
void removeMDTag(Instruction *inst, Value *val, std::string str)
remove flag from llvm metadata
bool hasDRCheckFlag(Instruction *inst) const
virtual ~Annotator()
Destructor.
bool hasDRCheckFlag(const Instruction *inst) const
bool hasSBSinkFlag(Instruction *inst) const
void addMDTag(Instruction *inst, std::string str)
Simple add/remove meta data information.
bool hasDRNotCheckFlag(Instruction *inst) const
Race Detection Has flag methods.
void addMDTag(Instruction *inst, Value *val, std::string str)
manipulate llvm meta data on instructions for a specific value
const char * DR_NOT_CHECK
Race Detection annotations.
llvm::Instruction Instruction
llvm::Value Value
LLVM Basic classes.
llvm::IRBuilder IRBuilder