LLVM API Documentation
#include <DependenceAnalysis.h>
Public Member Functions | |
FullDependence (Instruction *Src, Instruction *Dst, bool LoopIndependent, unsigned Levels) | |
~FullDependence () | |
bool | isLoopIndependent () const override |
bool | isConfused () const override |
bool | isConsistent () const override |
unsigned | getLevels () const override |
unsigned | getDirection (unsigned Level) const override |
const SCEV * | getDistance (unsigned Level) const override |
bool | isPeelFirst (unsigned Level) const override |
bool | isPeelLast (unsigned Level) const override |
bool | isSplitable (unsigned Level) const override |
bool | isScalar (unsigned Level) const override |
Friends | |
class | DependenceAnalysis |
FullDependence - This class represents a dependence between two memory references in a function. It contains detailed information about the dependence (direction vectors, etc.) and is used when the compiler is able to accurately analyze the interaction of the references; that is, it is not a confused dependence (see Dependence). In most cases (for output, flow, and anti dependences), the dependence implies an ordering, where the source must precede the destination; in contrast, input dependences are unordered.
Definition at line 218 of file DependenceAnalysis.h.
FullDependence::FullDependence | ( | Instruction * | Src, |
Instruction * | Dst, | ||
bool | LoopIndependent, | ||
unsigned | Levels | ||
) |
Definition at line 228 of file DependenceAnalysis.cpp.
llvm::FullDependence::~FullDependence | ( | ) | [inline] |
Definition at line 224 of file DependenceAnalysis.h.
unsigned FullDependence::getDirection | ( | unsigned | Level | ) | const [override, virtual] |
getDirection - Returns the direction associated with a particular level.
Reimplemented from llvm::Dependence.
Definition at line 242 of file DependenceAnalysis.cpp.
References llvm::Dependence::DVEntry::Direction.
Referenced by llvm::DependenceAnalysis::depends().
const SCEV * FullDependence::getDistance | ( | unsigned | Level | ) | const [override, virtual] |
getDistance - Returns the distance (or NULL) associated with a particular level.
Reimplemented from llvm::Dependence.
Definition at line 249 of file DependenceAnalysis.cpp.
References llvm::Dependence::DVEntry::Distance.
unsigned llvm::FullDependence::getLevels | ( | ) | const [inline, override, virtual] |
getLevels - Returns the number of common loops surrounding the source and destination of the dependence.
Reimplemented from llvm::Dependence.
Definition at line 243 of file DependenceAnalysis.h.
bool llvm::FullDependence::isConfused | ( | ) | const [inline, override, virtual] |
isConfused - Returns true if this dependence is confused (the compiler understands nothing and makes worst-case assumptions).
Reimplemented from llvm::Dependence.
Definition at line 235 of file DependenceAnalysis.h.
bool llvm::FullDependence::isConsistent | ( | ) | const [inline, override, virtual] |
isConsistent - Returns true if this dependence is consistent (occurs every time the source and destination are executed).
Reimplemented from llvm::Dependence.
Definition at line 239 of file DependenceAnalysis.h.
bool llvm::FullDependence::isLoopIndependent | ( | ) | const [inline, override, virtual] |
isLoopIndependent - Returns true if this is a loop-independent dependence.
Reimplemented from llvm::Dependence.
Definition at line 230 of file DependenceAnalysis.h.
bool FullDependence::isPeelFirst | ( | unsigned | Level | ) | const [override, virtual] |
isPeelFirst - Returns true if peeling the first iteration from this loop will break this dependence.
Reimplemented from llvm::Dependence.
Definition at line 266 of file DependenceAnalysis.cpp.
References llvm::Dependence::DVEntry::PeelFirst.
bool FullDependence::isPeelLast | ( | unsigned | Level | ) | const [override, virtual] |
isPeelLast - Returns true if peeling the last iteration from this loop will break this dependence.
Reimplemented from llvm::Dependence.
Definition at line 274 of file DependenceAnalysis.cpp.
References llvm::Dependence::DVEntry::PeelLast.
bool FullDependence::isScalar | ( | unsigned | Level | ) | const [override, virtual] |
isScalar - Returns true if a particular level is scalar; that is, if no subscript in the source or destination mention the induction variable associated with the loop at this level.
Reimplemented from llvm::Dependence.
Definition at line 258 of file DependenceAnalysis.cpp.
References llvm::Dependence::DVEntry::Scalar.
bool FullDependence::isSplitable | ( | unsigned | Level | ) | const [override, virtual] |
isSplitable - Returns true if splitting the loop will break the dependence.
Reimplemented from llvm::Dependence.
Definition at line 281 of file DependenceAnalysis.cpp.
References llvm::Dependence::DVEntry::Splitable.
friend class DependenceAnalysis [friend] |
Reimplemented from llvm::Dependence.
Definition at line 274 of file DependenceAnalysis.h.