|
LLVM 22.0.0git
|
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< Dependence > | depends (Instruction *Src, Instruction *Dst, bool UnderRuntimeAssumptions=false) |
| depends - Tests for a dependence between the Src and Dst instructions. | |
| Function * | getFunction () const |
| LLVM_ABI SCEVUnionPredicate | getRuntimeAssumptions () const |
| getRuntimeAssumptions - Returns all the runtime assumptions under which the dependence test is valid. | |
DependenceInfo - This class is the main dependence-analysis driver.
Definition at line 336 of file DependenceAnalysis.h.
|
inline |
Definition at line 338 of file DependenceAnalysis.h.
| 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().
|
inline |
Definition at line 356 of file DependenceAnalysis.h.
| 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.
| 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().