LLVM 22.0.0git
|
A simple AA result which uses scoped-noalias metadata to answer queries. More...
#include "llvm/Analysis/ScopedNoAliasAA.h"
Additional Inherited Members | |
Protected Member Functions inherited from llvm::AAResultBase | |
AAResultBase ()=default | |
AAResultBase (const AAResultBase &Arg) | |
AAResultBase (AAResultBase &&Arg) |
A simple AA result which uses scoped-noalias metadata to answer queries.
Definition at line 30 of file ScopedNoAliasAA.h.
AliasResult ScopedNoAliasAAResult::alias | ( | const MemoryLocation & | LocA, |
const MemoryLocation & | LocB, | ||
AAQueryInfo & | AAQI, | ||
const Instruction * | CtxI ) |
Definition at line 54 of file ScopedNoAliasAA.cpp.
References llvm::MemoryLocation::AATags, EnableScopedNoAlias, llvm::AliasResult::MayAlias, llvm::AAMDNodes::NoAlias, llvm::AliasResult::NoAlias, and llvm::AAMDNodes::Scope.
void ScopedNoAliasAAResult::collectScopedDomains | ( | const MDNode * | NoAlias, |
SmallPtrSetImpl< const MDNode * > & | Domains ) const |
Collect the set of scoped domains relevant to the noalias scopes.
Definition at line 118 of file ScopedNoAliasAA.cpp.
References assert(), llvm::dyn_cast(), llvm::SmallPtrSetImplBase::empty(), getDomain(), llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::MDNode::operands().
ModRefInfo ScopedNoAliasAAResult::getModRefInfo | ( | const CallBase * | Call, |
const MemoryLocation & | Loc, | ||
AAQueryInfo & | AAQI ) |
Definition at line 75 of file ScopedNoAliasAA.cpp.
References Call, EnableScopedNoAlias, llvm::ModRef, and llvm::NoModRef.
ModRefInfo ScopedNoAliasAAResult::getModRefInfo | ( | const CallBase * | Call1, |
const CallBase * | Call2, | ||
AAQueryInfo & | AAQI ) |
Definition at line 92 of file ScopedNoAliasAA.cpp.
References EnableScopedNoAlias, llvm::Instruction::getMetadata(), llvm::ModRef, and llvm::NoModRef.
|
inline |
Handle invalidation events from the new pass manager.
By definition, this result is stateless and so remains valid.
Definition at line 35 of file ScopedNoAliasAA.h.