LLVM API Documentation

Public Member Functions | Friends
llvm::FullDependence Class Reference

#include <DependenceAnalysis.h>

Inheritance diagram for llvm::FullDependence:
Inheritance graph
[legend]
Collaboration diagram for llvm::FullDependence:
Collaboration graph
[legend]

List of all members.

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 SCEVgetDistance (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

Detailed Description

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.


Constructor & Destructor Documentation

FullDependence::FullDependence ( Instruction Src,
Instruction Dst,
bool  LoopIndependent,
unsigned  Levels 
)

Definition at line 228 of file DependenceAnalysis.cpp.

Definition at line 224 of file DependenceAnalysis.h.


Member Function Documentation

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.


Friends And Related Function Documentation

friend class DependenceAnalysis [friend]

Reimplemented from llvm::Dependence.

Definition at line 274 of file DependenceAnalysis.h.


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