public abstract class InductionVariable extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
InductionVariable.Direction |
| Constructor and Description |
|---|
InductionVariable(LoopEx loop) |
| Modifier and Type | Method and Description |
|---|---|
abstract long |
constantExtremum() |
abstract long |
constantInit() |
long |
constantScale(InductionVariable ref)
this = C * ref + n, returns C.
|
abstract long |
constantStride() |
abstract void |
deleteUnusedNodes()
Deletes any nodes created within the scope of this object that have no usages.
|
abstract InductionVariable.Direction |
direction() |
abstract InductionVariable |
duplicate()
Duplicate this iv including all (non-constant) nodes.
|
abstract ValueNode |
exitValueNode()
Returns the exit value of the induction variable.
|
ValueNode |
extremumNode()
Returns the extremum value of the induction variable.
|
abstract ValueNode |
extremumNode(boolean assumeLoopEntered,
Stamp stamp) |
LoopEx |
getLoop() |
abstract StructuredGraph |
graph() |
abstract ValueNode |
initNode()
Returns the node that gives the initial value of this induction variable.
|
abstract boolean |
isConstantExtremum() |
abstract boolean |
isConstantInit() |
boolean |
isConstantScale(InductionVariable ref)
Is this = C * ref + n, C a constant?
|
abstract boolean |
isConstantStride() |
boolean |
offsetIsZero(InductionVariable ref)
Is this = n * ref + 0?
|
ValueNode |
offsetNode(InductionVariable ref)
If this = n * ref + offset, returns offset or null otherwise.
|
abstract ValueNode |
strideNode()
Returns the stride of the induction variable.
|
abstract ValueNode |
valueNode()
Returns the value node that is described by this induction variable.
|
protected final LoopEx loop
public InductionVariable(LoopEx loop)
public abstract StructuredGraph graph()
public LoopEx getLoop()
public abstract InductionVariable.Direction direction()
public abstract ValueNode valueNode()
public abstract ValueNode initNode()
public abstract ValueNode strideNode()
public abstract boolean isConstantInit()
public abstract boolean isConstantStride()
public abstract long constantInit()
public abstract long constantStride()
public ValueNode extremumNode()
CountedLoopInfo.isExactTripCount() returns false for the containing loop.public abstract boolean isConstantExtremum()
public abstract long constantExtremum()
public abstract ValueNode exitValueNode()
public abstract void deleteUnusedNodes()
public boolean isConstantScale(InductionVariable ref)
public long constantScale(InductionVariable ref)
public boolean offsetIsZero(InductionVariable ref)
public ValueNode offsetNode(InductionVariable ref)
public abstract InductionVariable duplicate()