src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HubGetClassNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HubGetClassNode.java Mon Mar 20 17:38:56 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HubGetClassNode.java Mon Mar 20 17:38:56 2017
*** 32,44 ****
--- 32,44 ----
import org.graalvm.compiler.graph.spi.Canonicalizable;
import org.graalvm.compiler.graph.spi.CanonicalizerTool;
import org.graalvm.compiler.hotspot.word.KlassPointer;
import org.graalvm.compiler.nodeinfo.NodeInfo;
import org.graalvm.compiler.nodes.ConstantNode;
import org.graalvm.compiler.nodes.FloatingGuardedNode;
import org.graalvm.compiler.nodes.ValueNode;
import org.graalvm.compiler.nodes.calc.ConvertNode;
+ import org.graalvm.compiler.nodes.calc.FloatingNode;
import org.graalvm.compiler.nodes.spi.Lowerable;
import org.graalvm.compiler.nodes.spi.LoweringTool;
import jdk.vm.ci.meta.Constant;
import jdk.vm.ci.meta.ConstantReflectionProvider;
*** 49,64 ****
--- 49,64 ----
/**
* Read {@code Klass::_java_mirror} and incorporate non-null type information into stamp. This is
* also used by {@link ClassGetHubNode} to eliminate chains of {@code klass._java_mirror._klass}.
*/
@NodeInfo(cycles = CYCLES_4, size = SIZE_1)
! public final class HubGetClassNode extends FloatingGuardedNode implements Lowerable, Canonicalizable, ConvertNode {
! public final class HubGetClassNode extends FloatingNode implements Lowerable, Canonicalizable, ConvertNode {
public static final NodeClass<HubGetClassNode> TYPE = NodeClass.create(HubGetClassNode.class);
@Input protected ValueNode hub;
public HubGetClassNode(@InjectedNodeParameter MetaAccessProvider metaAccess, ValueNode hub) {
- super(TYPE, StampFactory.objectNonNull(TypeReference.createWithoutAssumptions(metaAccess.lookupJavaType(Class.class))), null);
this.hub = hub;
}
public ValueNode getHub() {
return hub;
*** 112,124 ****
--- 112,129 ----
} else {
return constantReflection.asObjectHub(type);
}
}
+ /**
+ * Any concrete Klass* has a corresponding {@link java.lang.Class}.
+ */
@Override
public boolean isLossless() {
/*
* Any concrete Klass* has a corresponding java.lang.Class
*/
+ return true;
+ }
+
+ @Override
+ public boolean mayNullCheckSkipConversion() {
return true;
}
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/HubGetClassNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File