forked from OSchip/llvm-project
[Instruction] Add hasMetadata(Kind) helper [NFC]
It's a common idiom, so let's add the obvious wrapper for metadata kinds which are basically booleans. llvm-svn: 370933
This commit is contained in:
parent
2461061168
commit
27820f9909
|
@ -229,6 +229,16 @@ public:
|
|||
return hasMetadataHashEntry();
|
||||
}
|
||||
|
||||
/// Return true if this instruction has the given type of metadata attached.
|
||||
bool hasMetadata(unsigned KindID) const {
|
||||
return getMetadata(KindID) != nullptr;
|
||||
}
|
||||
|
||||
/// Return true if this instruction has the given type of metadata attached.
|
||||
bool hasMetadata(StringRef Kind) const {
|
||||
return getMetadata(Kind) != nullptr;
|
||||
}
|
||||
|
||||
/// Get the metadata of given kind attached to this Instruction.
|
||||
/// If the metadata is not found then return null.
|
||||
MDNode *getMetadata(unsigned KindID) const {
|
||||
|
|
|
@ -356,7 +356,7 @@ MemDepResult
|
|||
MemoryDependenceResults::getInvariantGroupPointerDependency(LoadInst *LI,
|
||||
BasicBlock *BB) {
|
||||
|
||||
if (!LI->getMetadata(LLVMContext::MD_invariant_group))
|
||||
if (!LI->hasMetadata(LLVMContext::MD_invariant_group))
|
||||
return MemDepResult::getUnknown();
|
||||
|
||||
// Take the ptr operand after all casts and geps 0. This way we can search
|
||||
|
@ -417,7 +417,7 @@ MemoryDependenceResults::getInvariantGroupPointerDependency(LoadInst *LI,
|
|||
// same pointer operand) we can assume that value pointed by pointer
|
||||
// operand didn't change.
|
||||
if ((isa<LoadInst>(U) || isa<StoreInst>(U)) &&
|
||||
U->getMetadata(LLVMContext::MD_invariant_group) != nullptr)
|
||||
U->hasMetadata(LLVMContext::MD_invariant_group))
|
||||
ClosestDependency = GetClosestDependency(ClosestDependency, U);
|
||||
}
|
||||
}
|
||||
|
@ -481,7 +481,7 @@ MemDepResult MemoryDependenceResults::getSimplePointerDependencyFrom(
|
|||
// Arguably, this logic should be pushed inside AliasAnalysis itself.
|
||||
if (isLoad && QueryInst) {
|
||||
LoadInst *LI = dyn_cast<LoadInst>(QueryInst);
|
||||
if (LI && LI->getMetadata(LLVMContext::MD_invariant_load) != nullptr)
|
||||
if (LI && LI->hasMetadata(LLVMContext::MD_invariant_load))
|
||||
isInvariantLoad = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1346,7 +1346,7 @@ Value *AddressSanitizer::isInterestingMemoryAccess(Instruction *I,
|
|||
unsigned *Alignment,
|
||||
Value **MaybeMask) {
|
||||
// Skip memory accesses inserted by another instrumentation.
|
||||
if (I->getMetadata("nosanitize")) return nullptr;
|
||||
if (I->hasMetadata("nosanitize")) return nullptr;
|
||||
|
||||
// Do not instrument the load fetching the dynamic shadow address.
|
||||
if (LocalDynamicShadow == I)
|
||||
|
@ -2686,7 +2686,7 @@ bool AddressSanitizer::instrumentFunction(Function &F,
|
|||
if (CS) {
|
||||
// A call inside BB.
|
||||
TempsToInstrument.clear();
|
||||
if (CS.doesNotReturn() && !CS->getMetadata("nosanitize"))
|
||||
if (CS.doesNotReturn() && !CS->hasMetadata("nosanitize"))
|
||||
NoReturnCalls.push_back(CS.getInstruction());
|
||||
}
|
||||
if (CallInst *CI = dyn_cast<CallInst>(&Inst))
|
||||
|
|
|
@ -500,7 +500,7 @@ Value *HWAddressSanitizer::isInterestingMemoryAccess(Instruction *I,
|
|||
unsigned *Alignment,
|
||||
Value **MaybeMask) {
|
||||
// Skip memory accesses inserted by another instrumentation.
|
||||
if (I->getMetadata("nosanitize")) return nullptr;
|
||||
if (I->hasMetadata("nosanitize")) return nullptr;
|
||||
|
||||
// Do not instrument the load fetching the dynamic shadow address.
|
||||
if (LocalDynamicShadow == I)
|
||||
|
|
|
@ -652,7 +652,7 @@ private:
|
|||
|
||||
bool isInvariantLoad() const {
|
||||
if (auto *LI = dyn_cast<LoadInst>(Inst))
|
||||
return LI->getMetadata(LLVMContext::MD_invariant_load) != nullptr;
|
||||
return LI->hasMetadata(LLVMContext::MD_invariant_load);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -543,7 +543,7 @@ bool LoopPredication::isLoopInvariantValue(const SCEV* S) {
|
|||
if (const auto *LI = dyn_cast<LoadInst>(U->getValue()))
|
||||
if (LI->isUnordered() && L->hasLoopInvariantOperands(LI))
|
||||
if (AA->pointsToConstantMemory(LI->getOperand(0)) ||
|
||||
LI->getMetadata(LLVMContext::MD_invariant_load) != nullptr)
|
||||
LI->hasMetadata(LLVMContext::MD_invariant_load))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ ImportedFunctionsInliningStatistics::createInlineGraphNode(const Function &F) {
|
|||
auto &ValueLookup = NodesMap[F.getName()];
|
||||
if (!ValueLookup) {
|
||||
ValueLookup = std::make_unique<InlineGraphNode>();
|
||||
ValueLookup->Imported = F.getMetadata("thinlto_src_module") != nullptr;
|
||||
ValueLookup->Imported = F.hasMetadata("thinlto_src_module");
|
||||
}
|
||||
return *ValueLookup;
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ void ImportedFunctionsInliningStatistics::setModuleInfo(const Module &M) {
|
|||
if (F.isDeclaration())
|
||||
continue;
|
||||
AllFunctions++;
|
||||
ImportedFunctions += int(F.getMetadata("thinlto_src_module") != nullptr);
|
||||
ImportedFunctions += int(F.hasMetadata("thinlto_src_module"));
|
||||
}
|
||||
}
|
||||
static std::string getStatString(const char *Msg, int32_t Fraction, int32_t All,
|
||||
|
|
Loading…
Reference in New Issue