15#ifndef LLVM_ANALYSIS_TYPEBASEDALIASANALYSIS_H
16#define LLVM_ANALYSIS_TYPEBASEDALIASANALYSIS_H
36 bool UsingTypeSanitizer;
40 : UsingTypeSanitizer(UsingTypeSanitizer) {}
46 FunctionAnalysisManager::Invalidator &) {
70 bool shouldUseTBAA()
const;
87 std::unique_ptr<TypeBasedAAResult> Result;
97 bool doInitialization(
Module &M)
override;
98 bool doFinalization(
Module &M)
override;
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
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 that uses TBAA metadata to answer queries.
bool invalidate(Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
Handle invalidation events from the new pass manager.
TypeBasedAAResult(bool UsingTypeSanitizer)
LLVM_ABI AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI)
LLVM_ABI ModRefInfo getModRefInfoMask(const MemoryLocation &Loc, AAQueryInfo &AAQI, bool IgnoreLocals)
LLVM_ABI ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI)
LLVM_ABI MemoryEffects getMemoryEffects(const CallBase *Call, AAQueryInfo &AAQI)
TypeBasedAAResult & getResult()
const TypeBasedAAResult & getResult() const
Analysis pass providing a never-invalidated alias analysis result.
LLVM_ABI TypeBasedAAResult run(Function &F, FunctionAnalysisManager &AM)
This is an optimization pass for GlobalISel generic memory operations.
MemoryEffectsBase< IRMemLocation > MemoryEffects
Summary of how a function affects memory in the program.
ModRefInfo
Flags indicating whether a memory access modifies or references memory.
LLVM_ABI ImmutablePass * createTypeBasedAAWrapperPass()
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...