107 return mul(graph(), base.extremumNode(assumePositiveTripCount, stamp), IntegerConvertNode.convert(scale, stamp, graph()));
108 }
109
110 @Override
111 public ValueNode exitValueNode() {
112 return mul(graph(), base.exitValueNode(), scale);
113 }
114
115 @Override
116 public boolean isConstantExtremum() {
117 return scale.isConstant() && base.isConstantExtremum();
118 }
119
120 @Override
121 public long constantExtremum() {
122 return base.constantExtremum() * scale.asJavaConstant().asLong();
123 }
124
125 @Override
126 public void deleteUnusedNodes() {
127 if (scale.isAlive() && scale.hasNoUsages()) {
128 GraphUtil.killWithUnusedFloatingInputs(scale);
129 }
130 }
131
132 @Override
133 public String toString() {
134 return String.format("DerivedScaleInductionVariable base (%s) %s %s", base, value.getNodeClass().shortName(), scale);
135 }
136 }
|
107 return mul(graph(), base.extremumNode(assumePositiveTripCount, stamp), IntegerConvertNode.convert(scale, stamp, graph()));
108 }
109
110 @Override
111 public ValueNode exitValueNode() {
112 return mul(graph(), base.exitValueNode(), scale);
113 }
114
115 @Override
116 public boolean isConstantExtremum() {
117 return scale.isConstant() && base.isConstantExtremum();
118 }
119
120 @Override
121 public long constantExtremum() {
122 return base.constantExtremum() * scale.asJavaConstant().asLong();
123 }
124
125 @Override
126 public void deleteUnusedNodes() {
127 GraphUtil.tryKillUnused(scale);
128 }
129
130 @Override
131 public String toString() {
132 return String.format("DerivedScaleInductionVariable base (%s) %s %s", base, value.getNodeClass().shortName(), scale);
133 }
134 }
|