llvm::Dependence

Minimal dependence between two memory references in a function.

Synopsis

Declared in <llvm/Analysis/DependenceAnalysis.h>

class Dependence;

Description

It contains minimal information and is used in the very common situation where the compiler is unable to determine anything beyond the existence of a dependence; that is, it represents a confused dependence (see also FullDependence). 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.

When a dependence graph is built, each Dependence will be a member of the set of predecessor edges for its destination instruction and a set if successor edges for its source instruction. These sets are represented as singly-linked lists, with the "next" fields stored in the dependence itelf.

Types

NameDescription
DVEntry One level of a dependence distance/direction vector.

Member Functions

NameDescription
Dependence [constructor]Construct a dependence from Source to Destination under A.
~Dependence [destructor] [virtual]Destroy this dependence.
dump dump - For debugging purposes, dumps a dependence to OS.
dumpImp dumpImp - For debugging purposes. Dumps a dependence to OS with or without considering the SameSD levels.
getDirection [virtual]getDirection - Returns the direction associated with a particular common or SameSD level.
getDistance [virtual]getDistance - Returns the distance (or NULL) associated with a particular common or SameSD level.
getDst getDst - Returns the destination instruction for this dependence.
getLevels [virtual]getLevels - Returns the number of common loops surrounding the source and destination of the dependence.
getNextPredecessor getNextPredecessor - Returns the value of the NextPredecessor field.
getNextSuccessor getNextSuccessor - Returns the value of the NextSuccessor field.
getRuntimeAssumptions getRuntimeAssumptions - Returns the runtime assumptions under which this Dependence relation is valid.
getSameSDLevels [virtual]getSameSDLevels - Returns the number of separate SameSD loops surrounding the source and destination of the dependence.
getSrc getSrc - Returns the source instruction for this dependence.
inSameSDLoops [virtual]inSameSDLoops - Returns true if this level is an SameSD level, i.e., performed across two separate loop nests that have the Same Iteration and Depth.
isAnti isAnti - Returns true if this is an anti dependence.
isConfused [virtual]isConfused - Returns true if this dependence is confused (the compiler understands nothing and makes worst-case assumptions).
isDirectionNegative [virtual]Check if the direction vector is negative. A negative direction vector means Src and Dst are reversed in the actual program.
isFlow isFlow - Returns true if this is a flow (aka true) dependence.
isInput isInput - Returns true if this is an input dependence.
isLoopIndependent [virtual]isLoopIndependent - Returns true if this is a loop-independent dependence.
isOrdered isOrdered - Returns true if dependence is Output, Flow, or Anti
isOutput isOutput - Returns true if this is an output dependence.
isScalar [virtual]Return true if a particular regular or SameSD level is scalar.
isUnordered isUnordered - Returns true if dependence is Input
negate [virtual]Negate the dependence by swapping the source and destination.
normalize [virtual]Normalize a negative direction vector to make it non-negative.
setNextPredecessor setNextPredecessor - Sets the value of the NextPredecessor field.
setNextSuccessor setNextSuccessor - Sets the value of the NextSuccessor field.

Protected Member Functions

NameDescription
Dependence [constructor]Move-construct this dependence, transferring ownership of linked state.
operator= Move-assign this dependence, transferring ownership of linked state.

Protected Data Members

NameDescription
Dst Destination instruction of this dependence.
Src Source instruction of this dependence.

Friends

NameDescription
llvm::DependenceInfoDependenceInfo - This class is the main dependence-analysis driver.

Derived Classes

NameDescription
FullDependence Detailed dependence between two memory references in a function.