src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/TypeSwitchNode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/TypeSwitchNode.java

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

Print this page

        

*** 25,34 **** --- 25,37 ---- import java.util.ArrayList; import java.util.Arrays; import org.graalvm.compiler.core.common.type.AbstractPointerStamp; import org.graalvm.compiler.core.common.type.ObjectStamp; + import org.graalvm.compiler.core.common.type.Stamp; + import org.graalvm.compiler.core.common.type.StampFactory; + import org.graalvm.compiler.core.common.type.TypeReference; import org.graalvm.compiler.graph.NodeClass; import org.graalvm.compiler.graph.spi.Simplifiable; import org.graalvm.compiler.graph.spi.SimplifierTool; import org.graalvm.compiler.nodeinfo.NodeInfo; import org.graalvm.compiler.nodes.AbstractBeginNode;
*** 195,200 **** --- 198,220 ---- GraphUtil.killWithUnusedFloatingInputs(this); } } } } + + @Override + public Stamp getValueStampForSuccessor(AbstractBeginNode beginNode) { + Stamp result = null; + if (beginNode != defaultSuccessor()) { + for (int i = 0; i < keyCount(); i++) { + if (keySuccessor(i) == beginNode) { + if (result == null) { + result = StampFactory.objectNonNull(TypeReference.createExactTrusted(typeAt(i))); + } else { + result = result.meet(StampFactory.objectNonNull(TypeReference.createExactTrusted(typeAt(i)))); + } + } + } + } + return result; + } }
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/java/TypeSwitchNode.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File