LLVM 22.0.0git
llvm::DependenceInfo Class Reference

DependenceInfo - This class is the main dependence-analysis driver. More...

#include "llvm/Analysis/DependenceAnalysis.h"

Public Member Functions

 DependenceInfo (Function *F, AAResults *AA, ScalarEvolution *SE, LoopInfo *LI)
LLVM_ABI bool invalidate (Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv)
 Handle transitive invalidation when the cached analysis results go away.
LLVM_ABI std::unique_ptr< Dependencedepends (Instruction *Src, Instruction *Dst, bool UnderRuntimeAssumptions=false)
 depends - Tests for a dependence between the Src and Dst instructions.
FunctiongetFunction () const
LLVM_ABI SCEVUnionPredicate getRuntimeAssumptions () const
 getRuntimeAssumptions - Returns all the runtime assumptions under which the dependence test is valid.

Detailed Description

DependenceInfo - This class is the main dependence-analysis driver.

Definition at line 336 of file DependenceAnalysis.h.

Constructor & Destructor Documentation

◆ DependenceInfo()

llvm::DependenceInfo::DependenceInfo ( Function * F,
AAResults * AA,
ScalarEvolution * SE,
LoopInfo * LI )
inline

Definition at line 338 of file DependenceAnalysis.h.

Member Function Documentation

◆ depends()

std::unique_ptr< Dependence > DependenceInfo::depends ( Instruction * Src,
Instruction * Dst,
bool UnderRuntimeAssumptions = false )

depends - Tests for a dependence between the Src and Dst instructions.

Returns NULL if no dependence; otherwise, returns a Dependence (or a FullDependence) with as much information as can be gleaned. By default, the dependence test collects a set of runtime assumptions that cannot be solved at compilation time. By default UnderRuntimeAssumptions is false for a safe approximation of the dependence relation that does not require runtime checks.

Definition at line 3527 of file DependenceAnalysis.cpp.

References assert(), llvm::dbgs(), Delinearize, dumpSmallBitVector(), EnableMonotonicityCheck, llvm::Dependence::DVEntry::EQ, llvm::MemoryLocation::get(), llvm::getLoadStorePointerOperand(), llvm::LoopBase< BlockT, LoopT >::getOutermostLoop(), llvm::SCEV::getType(), I, II, isLoadOrStore(), llvm::LocationSize::isPrecise(), llvm::SCEV::isZero(), LLVM_DEBUG, Loops, llvm::AliasResult::MayAlias, llvm::AliasResult::MustAlias, N, llvm::AliasResult::NoAlias, P, llvm::AliasResult::PartialAlias, llvm::SmallVectorImpl< T >::resize(), llvm::MemoryLocation::Size, llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::LocationSize::toRaw(), and underlyingObjectsAlias().

Referenced by checkDependency(), llvm::IndexedReference::hasTemporalReuse(), llvm::isSafeToMoveBefore(), and populateDependencyMatrix().

◆ getFunction()

Function * llvm::DependenceInfo::getFunction ( ) const
inline

Definition at line 356 of file DependenceAnalysis.h.

◆ getRuntimeAssumptions()

SCEVUnionPredicate DependenceInfo::getRuntimeAssumptions ( ) const

getRuntimeAssumptions - Returns all the runtime assumptions under which the dependence test is valid.

Definition at line 3513 of file DependenceAnalysis.cpp.

◆ invalidate()

bool DependenceInfo::invalidate ( Function & F,
const PreservedAnalyses & PA,
FunctionAnalysisManager::Invalidator & Inv )

Handle transitive invalidation when the cached analysis results go away.

Definition at line 3500 of file DependenceAnalysis.cpp.

References llvm::PreservedAnalyses::getChecker().


The documentation for this class was generated from the following files: