LLVM
8.0.1
|
A simple AA result which uses scoped-noalias metadata to answer queries. More...
#include "llvm/Analysis/ScopedNoAliasAA.h"
Public Member Functions | |
bool | invalidate (Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &) |
Handle invalidation events from the new pass manager. More... | |
AliasResult | alias (const MemoryLocation &LocA, const MemoryLocation &LocB) |
ModRefInfo | getModRefInfo (const CallBase *Call, const MemoryLocation &Loc) |
ModRefInfo | getModRefInfo (const CallBase *Call1, const CallBase *Call2) |
Public Member Functions inherited from llvm::AAResultBase< ScopedNoAliasAAResult > | |
AliasResult | alias (const MemoryLocation &LocA, const MemoryLocation &LocB) |
bool | pointsToConstantMemory (const MemoryLocation &Loc, bool OrLocal) |
ModRefInfo | getArgModRefInfo (const CallBase *Call, unsigned ArgIdx) |
FunctionModRefBehavior | getModRefBehavior (const CallBase *Call) |
FunctionModRefBehavior | getModRefBehavior (const Function *F) |
ModRefInfo | getModRefInfo (const CallBase *Call, const MemoryLocation &Loc) |
ModRefInfo | getModRefInfo (const CallBase *Call1, const CallBase *Call2) |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::AAResultBase< ScopedNoAliasAAResult > | |
AAResultBase ()=default | |
AAResultBase (const AAResultBase &Arg) | |
AAResultBase (AAResultBase &&Arg) | |
AAResultsProxy | getBestAAResults () |
Get a proxy for the best AA result set to query at this time. More... | |
A simple AA result which uses scoped-noalias metadata to answer queries.
Definition at line 31 of file ScopedNoAliasAA.h.
AliasResult ScopedNoAliasAAResult::alias | ( | const MemoryLocation & | LocA, |
const MemoryLocation & | LocB | ||
) |
Definition at line 78 of file ScopedNoAliasAA.cpp.
References llvm::MemoryLocation::AATags, llvm::AAResultBase< DerivedT >::alias(), EnableScopedNoAlias, llvm::NoAlias, llvm::AAMDNodes::NoAlias, and llvm::AAMDNodes::Scope.
Referenced by invalidate().
ModRefInfo ScopedNoAliasAAResult::getModRefInfo | ( | const CallBase * | Call, |
const MemoryLocation & | Loc | ||
) |
Definition at line 98 of file ScopedNoAliasAA.cpp.
References llvm::MemoryLocation::AATags, EnableScopedNoAlias, llvm::Instruction::getMetadata(), llvm::AAResultBase< DerivedT >::getModRefInfo(), llvm::LLVMContext::MD_alias_scope, llvm::LLVMContext::MD_noalias, llvm::AAMDNodes::NoAlias, llvm::NoModRef, and llvm::AAMDNodes::Scope.
Referenced by invalidate().
ModRefInfo ScopedNoAliasAAResult::getModRefInfo | ( | const CallBase * | Call1, |
const CallBase * | Call2 | ||
) |
Definition at line 114 of file ScopedNoAliasAA.cpp.
References EnableScopedNoAlias, llvm::Instruction::getMetadata(), llvm::AAResultBase< DerivedT >::getModRefInfo(), llvm::LLVMContext::MD_alias_scope, llvm::LLVMContext::MD_noalias, 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 38 of file ScopedNoAliasAA.h.
References alias(), getModRefInfo(), and llvm::NoAlias.