LLVM 22.0.0git
llvm::ScopedNoAliasAAResult Class Reference

A simple AA result which uses scoped-noalias metadata to answer queries. More...

#include "llvm/Analysis/ScopedNoAliasAA.h"

Inheritance diagram for llvm::ScopedNoAliasAAResult:
[legend]

Public Member Functions

bool invalidate (Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
 Handle invalidation events from the new pass manager.
LLVM_ABI AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI)
LLVM_ABI ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
LLVM_ABI ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)
LLVM_ABI void collectScopedDomains (const MDNode *NoAlias, SmallPtrSetImpl< const MDNode * > &Domains) const
 Collect the set of scoped domains relevant to the noalias scopes.
Public Member Functions inherited from llvm::AAResultBase
AliasResult alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *I)
AliasResult aliasErrno (const MemoryLocation &Loc, const Module *M)
ModRefInfo getModRefInfoMask (const MemoryLocation &Loc, AAQueryInfo &AAQI, bool IgnoreLocals)
ModRefInfo getArgModRefInfo (const CallBase *Call, unsigned ArgIdx)
MemoryEffects getMemoryEffects (const CallBase *Call, AAQueryInfo &AAQI)
MemoryEffects getMemoryEffects (const Function *F)
ModRefInfo getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
ModRefInfo getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI)

Additional Inherited Members

Protected Member Functions inherited from llvm::AAResultBase
 AAResultBase ()=default
 AAResultBase (const AAResultBase &Arg)
 AAResultBase (AAResultBase &&Arg)

Detailed Description

A simple AA result which uses scoped-noalias metadata to answer queries.

Definition at line 30 of file ScopedNoAliasAA.h.

Member Function Documentation

◆ alias()

◆ collectScopedDomains()

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().

◆ getModRefInfo() [1/2]

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.

◆ getModRefInfo() [2/2]

ModRefInfo ScopedNoAliasAAResult::getModRefInfo ( const CallBase * Call1,
const CallBase * Call2,
AAQueryInfo & AAQI )

◆ invalidate()

bool llvm::ScopedNoAliasAAResult::invalidate ( Function & ,
const PreservedAnalyses & ,
FunctionAnalysisManager::Invalidator &  )
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.


The documentation for this class was generated from the following files: