LLVM: lib/Analysis/BasicAliasAnalysis.cpp File Reference (original) (raw)
Go to the source code of this file.
Functions | |
---|---|
STATISTIC (SearchLimitReached, "Number of times the limit to " "decompose GEPs is reached") | |
SearchLimitReached / SearchTimes shows how often the limit of to decompose GEPs is reached. | |
STATISTIC (SearchTimes, "Number of times a GEP is decomposed") | |
static std::optional< TypeSize > | getObjectSize (const Value *V, const DataLayout &DL, const TargetLibraryInfo &TLI, bool NullIsValidLoc, bool RoundToAlign=false) |
Returns the size of the object specified by V or UnknownSize if unknown. | |
static bool | isObjectSmallerThan (const Value *V, TypeSize Size, const DataLayout &DL, const TargetLibraryInfo &TLI, bool NullIsValidLoc) |
Returns true if we can prove that the object specified by V is smaller than Size. | |
static TypeSize | getMinimalExtentFrom (const Value &V, const LocationSize &LocSize, const DataLayout &DL, bool NullIsValidLoc) |
Return the minimal extent from V to the end of the underlying object, assuming the result is used in an aliasing query. | |
static bool | isObjectSize (const Value *V, TypeSize Size, const DataLayout &DL, const TargetLibraryInfo &TLI, bool NullIsValidLoc) |
Returns true if we can prove that the object specified by V has size Size. | |
static bool | areBothVScale (const Value *V1, const Value *V2) |
Return true if both V1 and V2 are VScale. | |
static bool | isNotInCycle (const Instruction *I, const DominatorTree *DT, const LoopInfo *LI) |
static LinearExpression | GetLinearExpression (const CastedValue &Val, const DataLayout &DL, unsigned Depth, AssumptionCache *AC, DominatorTree *DT) |
Analyzes the specified value as a linear expression: "A*V + B", where A and B are constant integers. | |
static bool | isIntrinsicCall (const CallBase *Call, Intrinsic::ID IID) |
static const Function * | getParent (const Value *V) |
static bool | notDifferentParent (const Value *O1, const Value *O2) |
static AliasResult | MergeAliasResults (AliasResult A, AliasResult B) |
INITIALIZE_PASS_BEGIN (BasicAAWrapperPass, "basic-aa", "Basic Alias Analysis (stateless AA impl)", true, true) INITIALIZE_PASS_END(BasicAAWrapperPass | |
basic Basic Alias | Analysis (stateless AA impl)" |
Variables | |
---|---|
static cl::opt< bool > | EnableRecPhiAnalysis ("basic-aa-recphi", cl::Hidden, cl::init(true)) |
Enable analysis of recursive PHI nodes. | |
static cl::opt< bool > | EnableSeparateStorageAnalysis ("basic-aa-separate-storage", cl::Hidden, cl::init(true)) |
static const unsigned | MaxLookupSearchDepth = 6 |
basic | aa |
basic Basic Alias | true |
◆ DEBUG_TYPE
#define DEBUG_TYPE "basicaa"
basic Basic Alias Analysis | ( | stateless AA | impl | ) |
---|
◆ areBothVScale()
◆ GetLinearExpression()
◆ getMinimalExtentFrom()
◆ getObjectSize()
◆ getParent()
Definition at line 863 of file BasicAliasAnalysis.cpp.
References llvm::GlobalValue::getParent().
Referenced by llvm::CanonicalLoopInfo::assertOK(), llvm::slpvectorizer::BoUpSLP::canVectorizeLoads(), llvm::CloneAndPruneIntoFromInst(), llvm::JumpThreadingPass::computeValueKnownInPredecessorsImpl(), detectPopcountIdiom(), ensureValueAvailableInSuccessor(), llvm::VPBasicBlock::execute(), llvm::CodeExtractor::findAllocas(), llvm::InstCombinerImpl::foldOpIntoPhi(), foldURemOfLoopIncrement(), llvm::RegionBase< Tr >::getDepth(), llvm::VPBasicBlock::getEnclosingLoopRegion(), llvm::getLiveRegMap(), getLocalFunctionMetadata(), llvm::LoopBase< BasicBlock, Loop >::getLoopLatch(), llvm::slpvectorizer::BoUpSLP::getReorderingData(), isBlockValidForExtraction(), llvm::PHINode::isComplete(), llvm::VPBasicBlock::isExiting(), isFSqrtDivToFMulLegal(), llvm::CodeExtractor::isLegalToShrinkwrapLifetimeMarkers(), isOnlyUsedInEntryBlock(), isUsedOutsideOfDefiningBlock(), LLVMGetBasicBlockParent(), LLVMGetGlobalParent(), LLVMGetInstructionParent(), LLVMGetParamParent(), notDifferentParent(), preparePlanForEpilogueVectorLoop(), llvm::MachineFunction::print(), redirectValuesFromPredecessorsToPhi(), llvm::AssumptionCache::registerAssumption(), llvm::ScheduleDAGMI::schedule(), llvm::ScheduleDAGMILive::schedule(), llvm::VLIWMachineScheduler::schedule(), llvm::SIScheduleDAGMI::schedule(), splitCallSite(), and llvm::GenericCycle< ContextT >::verifyCycle().
◆ INITIALIZE_PASS_BEGIN()
◆ isIntrinsicCall()
◆ isNotInCycle()
◆ isObjectSize()
◆ isObjectSmallerThan()
◆ MergeAliasResults()
◆ notDifferentParent()
◆ STATISTIC() [1/2]
STATISTIC | ( | SearchLimitReached | , |
---|---|---|---|
"Number of times the limit to " "decompose GEPs is reached" | |||
) |
SearchLimitReached / SearchTimes shows how often the limit of to decompose GEPs is reached.
It will affect the precision of basic alias analysis.
◆ STATISTIC() [2/2]
STATISTIC | ( | SearchTimes | , |
---|---|---|---|
"Number of times a GEP is decomposed" | |||
) |
◆ aa
◆ EnableRecPhiAnalysis
cl::opt< bool > EnableRecPhiAnalysis("basic-aa-recphi", cl::Hidden, cl::init(true)) ( "basic-aa-recphi" , cl::Hidden , cl::init(true) ) | static |
---|
Enable analysis of recursive PHI nodes.
◆ EnableSeparateStorageAnalysis
cl::opt< bool > EnableSeparateStorageAnalysis("basic-aa-separate-storage", cl::Hidden, cl::init(true)) ( "basic-aa-separate-storage" , cl::Hidden , cl::init(true) ) | static |
---|