Detailed dependence between two memory references in a function.

Synopsis

Declared in <llvm/Analysis/DependenceAnalysis.h>

class FullDependence final
    : public Dependence

Description

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.

Base Classes

Name

Description

Dependence

Minimal dependence between two memory references in a function.

Types

Name

Description

DVEntry

One level of a dependence distance/direction vector.

Member Functions

Name

Description

FullDependence [constructor]

Construct a full dependence from Source to Destination.

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.

getDVEntry

getDVEntry ‐ Returns the DV entry associated with a regular or a SameSD level.

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

Name

Description

operator=

Move‐assign this dependence, transferring ownership of linked state.

Protected Data Members

Name

Description

Dst

Destination instruction of this dependence.

Src

Source instruction of this dependence.

Friends

Name

Description

llvm::DependenceInfo

DependenceInfo ‐ This class is the main dependence‐analysis driver.

Created with MrDocs