LLVM 17.0.0git
|
This class is a wrapper over an AAResults, and it is intended to be used only when there are no IR changes inbetween queries. More...
#include "llvm/Analysis/AliasAnalysis.h"
Public Member Functions | |
BatchAAResults (AAResults &AAR) | |
BatchAAResults (AAResults &AAR, CaptureInfo *CI) | |
AliasResult | alias (const MemoryLocation &LocA, const MemoryLocation &LocB) |
bool | pointsToConstantMemory (const MemoryLocation &Loc, bool OrLocal=false) |
ModRefInfo | getModRefInfoMask (const MemoryLocation &Loc, bool IgnoreLocals=false) |
ModRefInfo | getModRefInfo (const Instruction *I, const std::optional< MemoryLocation > &OptLoc) |
ModRefInfo | getModRefInfo (const Instruction *I, const CallBase *Call2) |
ModRefInfo | getArgModRefInfo (const CallBase *Call, unsigned ArgIdx) |
MemoryEffects | getMemoryEffects (const CallBase *Call) |
bool | isMustAlias (const MemoryLocation &LocA, const MemoryLocation &LocB) |
bool | isMustAlias (const Value *V1, const Value *V2) |
ModRefInfo | callCapturesBefore (const Instruction *I, const MemoryLocation &MemLoc, DominatorTree *DT) |
void | enableCrossIterationMode () |
Assume that values may come from different cycle iterations. | |
This class is a wrapper over an AAResults, and it is intended to be used only when there are no IR changes inbetween queries.
BatchAAResults is reusing the same AAQueryInfo
to preserve the state across queries, esentially making AA work in "batch mode". The internal state cannot be cleared, so to go "out-of-batch-mode", the user must either use AAResults, or create a new BatchAAResults.
Definition at line 612 of file AliasAnalysis.h.
|
inline |
Definition at line 618 of file AliasAnalysis.h.
|
inline |
Definition at line 619 of file AliasAnalysis.h.
|
inline |
Definition at line 621 of file AliasAnalysis.h.
References llvm::AAResults::alias().
Referenced by llvm::AliasSet::aliasesPointer(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), and isMustAlias().
|
inline |
Definition at line 652 of file AliasAnalysis.h.
References llvm::AAResults::callCapturesBefore(), and I.
Referenced by llvm::MemoryDependenceResults::getSimplePointerDependencyFrom().
|
inline |
Assume that values may come from different cycle iterations.
Definition at line 659 of file AliasAnalysis.h.
References llvm::AAQueryInfo::MayBeCrossIteration.
|
inline |
Definition at line 638 of file AliasAnalysis.h.
References llvm::AAResults::getArgModRefInfo().
Referenced by llvm::AliasSetTracker::add().
|
inline |
Definition at line 641 of file AliasAnalysis.h.
References llvm::AAResults::getMemoryEffects().
Referenced by llvm::AliasSetTracker::add().
|
inline |
Definition at line 635 of file AliasAnalysis.h.
References llvm::AAResults::getModRefInfo(), and I.
|
inline |
Definition at line 631 of file AliasAnalysis.h.
References llvm::AAResults::getModRefInfo(), and I.
Referenced by accessedBetween(), llvm::AliasSet::aliasesPointer(), llvm::AliasSet::aliasesUnknownInst(), findDominatingValue(), llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), and memoryIsNotModifiedBetween().
|
inline |
Definition at line 627 of file AliasAnalysis.h.
References llvm::AAResults::getModRefInfoMask().
Referenced by llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), and isUseTriviallyOptimizableToLiveOnEntry().
|
inline |
Definition at line 644 of file AliasAnalysis.h.
References alias(), and llvm::AliasResult::MustAlias.
Referenced by llvm::MemoryDependenceResults::getSimplePointerDependencyFrom(), hasUndefContents(), isMaskedStoreOverwrite(), and llvm::AliasSet::mergeSetIn().
Definition at line 647 of file AliasAnalysis.h.
References alias(), llvm::AliasResult::MustAlias, and llvm::LocationSize::precise().
|
inline |
Definition at line 624 of file AliasAnalysis.h.
References llvm::AAResults::pointsToConstantMemory().