class DependenceInfo::Constraint

Declaration

class DependenceInfo::Constraint { /* full declaration omitted */ };

Description

Constraint - This private class represents a constraint, as defined in the paper Practical Dependence Testing Goff, Kennedy, Tseng PLDI 1991 There are 5 kinds of constraint, in a hierarchy. 1) Any - indicates no constraint, any dependence is possible. 2) Line - A line ax + by = c, where a, b, and c are parameters, representing the dependence equation. 3) Distance - The value d of the dependence distance; 4) Point - A point <x , y> representing the dependence from iteration x to iteration y. 5) Empty - No dependence is possible.

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

Method Overview

  • public void dump(llvm::raw_ostream & OS) const
  • public const llvm::SCEV * getA() const
  • public const llvm::Loop * getAssociatedLoop() const
  • public const llvm::SCEV * getB() const
  • public const llvm::SCEV * getC() const
  • public const llvm::SCEV * getD() const
  • public const llvm::SCEV * getX() const
  • public const llvm::SCEV * getY() const
  • public bool isAny() const
  • public bool isDistance() const
  • public bool isEmpty() const
  • public bool isLine() const
  • public bool isPoint() const
  • public void setAny(llvm::ScalarEvolution * SE)
  • public void setDistance(const llvm::SCEV * D, const llvm::Loop * CurrentLoop)
  • public void setEmpty()
  • public void setLine(const llvm::SCEV * A, const llvm::SCEV * B, const llvm::SCEV * C, const llvm::Loop * CurrentLoop)
  • public void setPoint(const llvm::SCEV * X, const llvm::SCEV * Y, const llvm::Loop * CurrentLoop)

Methods

void dump(llvm::raw_ostream& OS) const

Description

dump - For debugging purposes. Dumps the constraint out to OS.

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

Parameters

llvm::raw_ostream& OS

const llvm::SCEV* getA() const

Description

getA - If constraint is a line AX + BY = C, returns A. Otherwise assert.

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

const llvm::Loop* getAssociatedLoop() const

Description

getAssociatedLoop - Returns the loop associated with this constraint.

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

const llvm::SCEV* getB() const

Description

getB - If constraint is a line AX + BY = C, returns B. Otherwise assert.

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

const llvm::SCEV* getC() const

Description

getC - If constraint is a line AX + BY = C, returns C. Otherwise assert.

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

const llvm::SCEV* getD() const

Description

getD - If constraint is a distance, returns D. Otherwise assert.

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

const llvm::SCEV* getX() const

Description

getX - If constraint is a point <X , Y>, returns X. Otherwise assert.

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

const llvm::SCEV* getY() const

Description

getY - If constraint is a point <X , Y>, returns Y. Otherwise assert.

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

bool isAny() const

Description

isAny - Return true if the constraint is of kind Any;

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

bool isDistance() const

Description

isDistance - Return true if the constraint is of kind Distance.

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

bool isEmpty() const

Description

isEmpty - Return true if the constraint is of kind Empty.

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

bool isLine() const

Description

isLine - Return true if the constraint is of kind Line. Since Distance's can also be represented as Lines, we also return true if the constraint is of kind Distance.

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

bool isPoint() const

Description

isPoint - Return true if the constraint is of kind Point.

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

void setAny(llvm::ScalarEvolution* SE)

Description

setAny - Change a constraint to Any.

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

Parameters

llvm::ScalarEvolution* SE

void setDistance(const llvm::SCEV* D,
                 const llvm::Loop* CurrentLoop)

Description

setDistance - Change a constraint to Distance.

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

Parameters

const llvm::SCEV* D
const llvm::Loop* CurrentLoop

void setEmpty()

Description

setEmpty - Change a constraint to Empty.

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

void setLine(const llvm::SCEV* A,
             const llvm::SCEV* B,
             const llvm::SCEV* C,
             const llvm::Loop* CurrentLoop)

Description

setLine - Change a constraint to Line.

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

Parameters

const llvm::SCEV* A
const llvm::SCEV* B
const llvm::SCEV* C
const llvm::Loop* CurrentLoop

void setPoint(const llvm::SCEV* X,
              const llvm::SCEV* Y,
              const llvm::Loop* CurrentLoop)

Description

setPoint - Change a constraint to Point.

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

Parameters

const llvm::SCEV* X
const llvm::SCEV* Y
const llvm::Loop* CurrentLoop