diff options
Diffstat (limited to 'llvm/lib/Analysis/AliasSetTracker.cpp')
-rw-r--r-- | llvm/lib/Analysis/AliasSetTracker.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/AliasSetTracker.cpp b/llvm/lib/Analysis/AliasSetTracker.cpp index dc6ecd58b7b..66fdf7f22f0 100644 --- a/llvm/lib/Analysis/AliasSetTracker.cpp +++ b/llvm/lib/Analysis/AliasSetTracker.cpp @@ -252,6 +252,18 @@ bool AliasSet::aliasesUnknownInst(const Instruction *Inst, return false; } +Instruction* AliasSet::getUniqueInstruction() { + if (size() != 0) + // Can't track source of pointer, might be many instruction + return nullptr; + if (AliasAny) + // May have collapses alias set + return nullptr; + if (1 != UnknownInsts.size()) + return nullptr; + return cast<Instruction>(UnknownInsts[0]); +} + void AliasSetTracker::clear() { // Delete all the PointerRec entries. for (PointerMapType::iterator I = PointerMap.begin(), E = PointerMap.end(); |