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

Static Public Member Functions

static LLVM_ABI void collectScopedDomains (const MDNode *NoAlias, SmallPtrSetImpl< const MDNode * > &Domains)
 Collect the set of scoped domains relevant to the noalias scopes.
static LLVM_ABI bool mayAliasInScopes (const MDNode *Scopes, const MDNode *NoAlias)

Additional Inherited Members

Protected Member Functions inherited from llvm::AAResultBase
 AAResultBase ()=default
 AAResultBase (const AAResultBase &Arg)=default
 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 )
static

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

Referenced by mayAliasInScopes().

◆ getModRefInfo() [1/2]

ModRefInfo ScopedNoAliasAAResult::getModRefInfo ( const CallBase * Call,
const MemoryLocation & Loc,
AAQueryInfo & AAQI )

◆ 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.

◆ mayAliasInScopes()

bool ScopedNoAliasAAResult::mayAliasInScopes ( const MDNode * Scopes,
const MDNode * NoAlias )
static

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