class FullDependence

Declaration

class FullDependence : public Dependence { /* full declaration omitted */ };

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.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:214

Inherits from: Dependence

Method Overview

Inherited from Dependence:

Methods

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

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:216

Parameters

llvm::Instruction* Src
llvm::Instruction* Dst
bool LoopIndependent
unsigned int Levels

unsigned int getDirection(
    unsigned int Level) const

Description

getDirection - Returns the direction associated with a particular level.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:238

Parameters

unsigned int Level

const llvm::SCEV* getDistance(
    unsigned int Level) const

Description

getDistance - Returns the distance (or NULL) associated with a particular level.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:242

Parameters

unsigned int Level

unsigned int getLevels() const

Description

getLevels - Returns the number of common loops surrounding the source and destination of the dependence.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:234

bool isConfused() const

Description

isConfused - Returns true if this dependence is confused (the compiler understands nothing and makes worst-case assumptions).

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:226

bool isConsistent() const

Description

isConsistent - Returns true if this dependence is consistent (occurs every time the source and destination are executed).

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:230

bool isLoopIndependent() const

Description

isLoopIndependent - Returns true if this is a loop-independent dependence.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:221

bool isPeelFirst(unsigned int Level) const

Description

isPeelFirst - Returns true if peeling the first iteration from this loop will break this dependence.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:246

Parameters

unsigned int Level

bool isPeelLast(unsigned int Level) const

Description

isPeelLast - Returns true if peeling the last iteration from this loop will break this dependence.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:250

Parameters

unsigned int Level

bool isScalar(unsigned int Level) const

Description

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.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:259

Parameters

unsigned int Level

bool isSplitable(unsigned int Level) const

Description

isSplitable - Returns true if splitting the loop will break the dependence.

Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:254

Parameters

unsigned int Level