public class DerivedOffsetInductionVariable extends DerivedInductionVariable
InductionVariable.Direction| Modifier and Type | Field and Description |
|---|---|
protected ValueNode |
offset |
protected BinaryArithmeticNode<?> |
value |
baseloop| Constructor and Description |
|---|
DerivedOffsetInductionVariable(LoopEx loop,
InductionVariable base,
ValueNode offset,
BinaryArithmeticNode<?> value) |
| Modifier and Type | Method and Description |
|---|---|
long |
constantExtremum() |
long |
constantInit() |
long |
constantScale(InductionVariable ref)
this = C * ref + n, returns C.
|
long |
constantStride() |
InductionVariable |
copy(InductionVariable newBase,
ValueNode newValue) |
ValueNode |
copyValue(InductionVariable newBase) |
ValueNode |
copyValue(InductionVariable newBase,
boolean gvn) |
void |
deleteUnusedNodes()
Deletes any nodes created within the scope of this object that have no usages.
|
InductionVariable.Direction |
direction() |
ValueNode |
exitValueNode()
Returns the exit value of the induction variable.
|
ValueNode |
extremumNode(boolean assumeLoopEntered,
Stamp stamp) |
ValueNode |
getOffset() |
ValueNode |
initNode()
Returns the node that gives the initial value of this induction variable.
|
boolean |
isConstantExtremum() |
boolean |
isConstantInit() |
boolean |
isConstantScale(InductionVariable ref)
Is this = C * ref + n, C a constant?
|
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.
|
ValueNode |
op(ValueNode b,
ValueNode o) |
ValueNode |
op(ValueNode b,
ValueNode o,
boolean gvn) |
ValueNode |
strideNode()
Returns the stride of the induction variable.
|
String |
toString() |
ValueNode |
valueNode()
Returns the value node that is described by this induction variable.
|
duplicate, getBase, graphextremumNode, getLoopprotected final ValueNode offset
protected final BinaryArithmeticNode<?> value
public DerivedOffsetInductionVariable(LoopEx loop, InductionVariable base, ValueNode offset, BinaryArithmeticNode<?> value)
public ValueNode getOffset()
public InductionVariable.Direction direction()
direction in class InductionVariablepublic ValueNode valueNode()
InductionVariablevalueNode in class InductionVariablepublic boolean isConstantInit()
isConstantInit in class InductionVariablepublic boolean isConstantStride()
isConstantStride in class InductionVariablepublic long constantInit()
constantInit in class InductionVariablepublic long constantStride()
constantStride in class InductionVariablepublic ValueNode initNode()
InductionVariableinitNode in class InductionVariablepublic ValueNode strideNode()
InductionVariablestrideNode in class InductionVariablepublic ValueNode extremumNode(boolean assumeLoopEntered, Stamp stamp)
extremumNode in class InductionVariablepublic ValueNode exitValueNode()
InductionVariableexitValueNode in class InductionVariablepublic boolean isConstantExtremum()
isConstantExtremum in class InductionVariablepublic long constantExtremum()
constantExtremum in class InductionVariablepublic void deleteUnusedNodes()
InductionVariabledeleteUnusedNodes in class InductionVariablepublic boolean isConstantScale(InductionVariable ref)
InductionVariableisConstantScale in class InductionVariablepublic long constantScale(InductionVariable ref)
InductionVariableconstantScale in class InductionVariablepublic boolean offsetIsZero(InductionVariable ref)
InductionVariableoffsetIsZero in class InductionVariablepublic ValueNode offsetNode(InductionVariable ref)
InductionVariableoffsetNode in class InductionVariablepublic ValueNode copyValue(InductionVariable newBase)
copyValue in class DerivedInductionVariablepublic ValueNode copyValue(InductionVariable newBase, boolean gvn)
copyValue in class DerivedInductionVariablepublic InductionVariable copy(InductionVariable newBase, ValueNode newValue)
copy in class DerivedInductionVariable