14#ifndef LLVM_ANALYSIS_SCOPEDNOALIASAA_H
15#define LLVM_ANALYSIS_SCOPEDNOALIASAA_H
36 FunctionAnalysisManager::Invalidator &) {
54 bool mayAliasInScopes(
const MDNode *Scopes,
const MDNode *NoAlias)
const;
71 std::unique_ptr<ScopedNoAliasAAResult> Result;
81 bool doInitialization(
Module &M)
override;
82 bool doFinalization(
Module &M)
override;
This header defines various interfaces for pass management in LLVM.
This class stores info we want to provide to or retain within an alias query.
The possible results of an alias query.
Represent the analysis usage information of a pass.
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...
ImmutablePass class - This class is used to provide information that does not need to be run.
Representation for a specific memory location.
A Module instance is used to store all the information related to an LLVM module.
A set of analyses that are preserved following a run of a transformation pass.
A simple AA result which uses scoped-noalias metadata to answer queries.
bool invalidate(Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
Handle invalidation events from the new pass manager.
LLVM_ABI void collectScopedDomains(const MDNode *NoAlias, SmallPtrSetImpl< const MDNode * > &Domains) const
Collect the set of scoped domains relevant to the noalias scopes.
LLVM_ABI ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
LLVM_ABI AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI)
ScopedNoAliasAAResult & getResult()
const ScopedNoAliasAAResult & getResult() const
ScopedNoAliasAAWrapperPass()
Analysis pass providing a never-invalidated alias analysis result.
LLVM_ABI ScopedNoAliasAAResult run(Function &F, FunctionAnalysisManager &AM)
ScopedNoAliasAAResult Result
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI ImmutablePass * createScopedNoAliasAAWrapperPass()
ModRefInfo
Flags indicating whether a memory access modifies or references memory.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...