LLVM: llvm::DependenceInfo Class Reference (original) (raw)

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

#include "[llvm/Analysis/DependenceAnalysis.h](DependenceAnalysis%5F8h%5Fsource.html)"

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< Dependence > depends (Instruction *Src, Instruction *Dst, bool UnderRuntimeAssumptions=false)
depends - Tests for a dependence between the Src and Dst instructions.
Function * getFunction () const

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

Definition at line 336 of file DependenceAnalysis.h.

depends()

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 3401 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(), II, isLoadOrStore(), llvm::LocationSize::isPrecise(), llvm::SCEV::isZero(), LLVM_DEBUG, Loops, llvm::AliasResult::MayAlias, llvm::AliasResult::MustAlias, 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

invalidate()


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