LLVM 20.0.0git
|
A simple alias analysis implementation that uses ScalarEvolution to answer queries. More...
#include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h"
Public Member Functions | |
SCEVAAResult (ScalarEvolution &SE) | |
SCEVAAResult (SCEVAAResult &&Arg) | |
AliasResult | alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *CtxI) |
bool | invalidate (Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv) |
Public Member Functions inherited from llvm::AAResultBase | |
AliasResult | alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI, const Instruction *I) |
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) | |
A simple alias analysis implementation that uses ScalarEvolution to answer queries.
Definition at line 27 of file ScalarEvolutionAliasAnalysis.h.
|
inlineexplicit |
Definition at line 31 of file ScalarEvolutionAliasAnalysis.h.
|
inline |
Definition at line 32 of file ScalarEvolutionAliasAnalysis.h.
AliasResult SCEVAAResult::alias | ( | const MemoryLocation & | LocA, |
const MemoryLocation & | LocB, | ||
AAQueryInfo & | AAQI, | ||
const Instruction * | CtxI | ||
) |
Definition at line 36 of file ScalarEvolutionAliasAnalysis.cpp.
References llvm::MemoryLocation::AATags, alias(), llvm::LocationSize::beforeOrAfterPointer(), llvm::BitWidth, canComputePointerDiff(), llvm::ScalarEvolution::getEffectiveSCEVType(), llvm::ScalarEvolution::getMinusSCEV(), llvm::ScalarEvolution::getPtrToIntExpr(), llvm::ScalarEvolution::getSCEV(), llvm::SCEV::getType(), llvm::ScalarEvolution::getTypeSizeInBits(), llvm::ConstantRange::getUnsignedMax(), llvm::ConstantRange::getUnsignedMin(), llvm::ScalarEvolution::getUnsignedRange(), llvm::LocationSize::getValue(), llvm::LocationSize::hasValue(), llvm::LocationSize::isZero(), llvm::AliasResult::MayAlias, llvm::AliasResult::MustAlias, llvm::AliasResult::NoAlias, llvm::MemoryLocation::Ptr, llvm::MemoryLocation::Size, llvm::APInt::ule(), and llvm::MemoryLocation::UnknownSize.
Referenced by alias().
bool SCEVAAResult::invalidate | ( | Function & | F, |
const PreservedAnalyses & | PA, | ||
FunctionAnalysisManager::Invalidator & | Inv | ||
) |
Definition at line 145 of file ScalarEvolutionAliasAnalysis.cpp.
References llvm::AnalysisManager< IRUnitT, ExtraArgTs >::Invalidator::invalidate().