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
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
¶const llvm::SCEV* getA() const
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
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
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
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
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
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
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
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
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
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
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
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)
void setAny(llvm::ScalarEvolution* SE)
Description
setAny - Change a constraint to Any.
Declared at: llvm/include/llvm/Analysis/DependenceAnalysis.h:451
Parameters
¶void setDistance(const llvm::SCEV* D,
const llvm::Loop* CurrentLoop)
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()
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)
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)
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