< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/VirtualizerToolImpl.java
Print this page
rev 52509 : [mq]: graal2
*** 26,36 ****
import static org.graalvm.compiler.core.common.GraalOptions.MaximumEscapeAnalysisArrayLength;
import java.util.List;
- import org.graalvm.compiler.core.common.spi.ArrayOffsetProvider;
import org.graalvm.compiler.core.common.spi.ConstantFieldProvider;
import org.graalvm.compiler.debug.DebugContext;
import org.graalvm.compiler.graph.Node;
import org.graalvm.compiler.graph.spi.CanonicalizerTool;
import org.graalvm.compiler.nodes.ConstantNode;
--- 26,35 ----
*** 95,123 ****
public DebugContext getDebug() {
return debug;
}
@Override
- public MetaAccessProvider getMetaAccessProvider() {
- return metaAccess;
- }
-
- @Override
- public ConstantReflectionProvider getConstantReflectionProvider() {
- return constantReflection;
- }
-
- @Override
public ConstantFieldProvider getConstantFieldProvider() {
return constantFieldProvider;
}
- @Override
- public ArrayOffsetProvider getArrayOffsetProvider() {
- return loweringProvider;
- }
-
public void reset(PartialEscapeBlockState<?> newState, ValueNode newCurrent, FixedNode newPosition, GraphEffectList newEffects) {
deleted = false;
state = newState;
current = newCurrent;
position = newPosition;
--- 94,107 ----
*** 166,176 ****
} else if (entryKind == JavaKind.Int && (accessKind == JavaKind.Long || accessKind == JavaKind.Double) && offset % 8 == 0) {
/*
* Special case: Allow storing a single long or double value into two consecutive
* int slots.
*/
! int nextIndex = virtual.entryIndexForOffset(getArrayOffsetProvider(), offset + 4, JavaKind.Int);
if (nextIndex != -1) {
canVirtualize = true;
assert nextIndex == index + 1 : "expected to be sequential";
getDebug().log(DebugContext.DETAILED_LEVEL, "virtualizing %s for double word stored in two ints", current);
}
--- 150,160 ----
} else if (entryKind == JavaKind.Int && (accessKind == JavaKind.Long || accessKind == JavaKind.Double) && offset % 8 == 0) {
/*
* Special case: Allow storing a single long or double value into two consecutive
* int slots.
*/
! int nextIndex = virtual.entryIndexForOffset(getMetaAccess(), offset + 4, JavaKind.Int);
if (nextIndex != -1) {
canVirtualize = true;
assert nextIndex == index + 1 : "expected to be sequential";
getDebug().log(DebugContext.DETAILED_LEVEL, "virtualizing %s for double word stored in two ints", current);
}
*** 208,218 ****
return false;
}
private ValueNode getIllegalConstant() {
if (illegalConstant == null) {
! illegalConstant = ConstantNode.forConstant(JavaConstant.forIllegal(), getMetaAccessProvider());
addNode(illegalConstant);
}
return illegalConstant;
}
--- 192,202 ----
return false;
}
private ValueNode getIllegalConstant() {
if (illegalConstant == null) {
! illegalConstant = ConstantNode.forConstant(JavaConstant.forIllegal(), getMetaAccess());
addNode(illegalConstant);
}
return illegalConstant;
}
< prev index next >