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