< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/extended/RawStoreNode.java

Print this page

        

*** 37,46 **** --- 37,47 ---- import org.graalvm.compiler.nodes.memory.MemoryCheckpoint; import org.graalvm.compiler.nodes.spi.Lowerable; import org.graalvm.compiler.nodes.spi.LoweringTool; import org.graalvm.compiler.nodes.spi.Virtualizable; import org.graalvm.compiler.nodes.spi.VirtualizerTool; + import org.graalvm.compiler.nodes.type.StampTool; import org.graalvm.compiler.nodes.virtual.VirtualObjectNode; import org.graalvm.word.LocationIdentity; import jdk.vm.ci.meta.Assumptions; import jdk.vm.ci.meta.JavaConstant;
*** 122,132 **** if (indexValue.isConstant()) { long off = indexValue.asJavaConstant().asLong(); int entryIndex = virtual.entryIndexForOffset(off, accessKind()); if (entryIndex != -1) { JavaKind entryKind = virtual.entryKind(entryIndex); ! boolean canVirtualize = entryKind == accessKind() || entryKind == accessKind().getStackKind(); if (!canVirtualize) { /* * Special case: If the entryKind is long, allow arbitrary kinds as long as * a value of the same kind is already there. This can only happen if some * other node initialized the entry with a value of a different kind. One --- 123,133 ---- if (indexValue.isConstant()) { long off = indexValue.asJavaConstant().asLong(); int entryIndex = virtual.entryIndexForOffset(off, accessKind()); if (entryIndex != -1) { JavaKind entryKind = virtual.entryKind(entryIndex); ! boolean canVirtualize = entryKind == accessKind() || (entryKind == accessKind().getStackKind() && !StampTool.typeOrNull(object()).isArray()); if (!canVirtualize) { /* * Special case: If the entryKind is long, allow arbitrary kinds as long as * a value of the same kind is already there. This can only happen if some * other node initialized the entry with a value of a different kind. One
< prev index next >