src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/ClassGetHubNode.java
equal
deleted
inserted
replaced
23 package org.graalvm.compiler.hotspot.replacements; |
23 package org.graalvm.compiler.hotspot.replacements; |
24 |
24 |
25 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_1; |
25 import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_1; |
26 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_1; |
26 import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_1; |
27 |
27 |
28 import jdk.vm.ci.meta.JavaKind; |
28 import org.graalvm.compiler.core.common.calc.CanonicalCondition; |
29 import jdk.vm.ci.meta.ResolvedJavaMethod; |
|
30 |
|
31 import org.graalvm.compiler.core.common.calc.Condition; |
|
32 import org.graalvm.compiler.core.common.type.Stamp; |
29 import org.graalvm.compiler.core.common.type.Stamp; |
33 import org.graalvm.compiler.graph.Node; |
30 import org.graalvm.compiler.graph.Node; |
34 import org.graalvm.compiler.graph.NodeClass; |
31 import org.graalvm.compiler.graph.NodeClass; |
35 import org.graalvm.compiler.graph.spi.Canonicalizable; |
32 import org.graalvm.compiler.graph.spi.Canonicalizable; |
36 import org.graalvm.compiler.graph.spi.CanonicalizerTool; |
33 import org.graalvm.compiler.graph.spi.CanonicalizerTool; |
54 import org.graalvm.word.LocationIdentity; |
51 import org.graalvm.word.LocationIdentity; |
55 |
52 |
56 import jdk.vm.ci.meta.Constant; |
53 import jdk.vm.ci.meta.Constant; |
57 import jdk.vm.ci.meta.ConstantReflectionProvider; |
54 import jdk.vm.ci.meta.ConstantReflectionProvider; |
58 import jdk.vm.ci.meta.JavaConstant; |
55 import jdk.vm.ci.meta.JavaConstant; |
|
56 import jdk.vm.ci.meta.JavaKind; |
59 import jdk.vm.ci.meta.MetaAccessProvider; |
57 import jdk.vm.ci.meta.MetaAccessProvider; |
|
58 import jdk.vm.ci.meta.ResolvedJavaMethod; |
60 import jdk.vm.ci.meta.ResolvedJavaType; |
59 import jdk.vm.ci.meta.ResolvedJavaType; |
61 |
60 |
62 /** |
61 /** |
63 * Read {@code Class::_klass} to get the hub for a {@link java.lang.Class}. This node mostly exists |
62 * Read {@code Class::_klass} to get the hub for a {@link java.lang.Class}. This node mostly exists |
64 * to replace {@code _klass._java_mirror._klass} with {@code _klass}. The constant folding could be |
63 * to replace {@code _klass._java_mirror._klass} with {@code _klass}. The constant folding could be |
167 public boolean mayNullCheckSkipConversion() { |
166 public boolean mayNullCheckSkipConversion() { |
168 return false; |
167 return false; |
169 } |
168 } |
170 |
169 |
171 @Override |
170 @Override |
172 public boolean preservesOrder(Condition op, Constant value, ConstantReflectionProvider constantReflection) { |
171 public boolean preservesOrder(CanonicalCondition op, Constant value, ConstantReflectionProvider constantReflection) { |
173 assert op == Condition.EQ || op == Condition.NE; |
172 assert op == CanonicalCondition.EQ; |
174 ResolvedJavaType exactType = constantReflection.asJavaType(value); |
173 ResolvedJavaType exactType = constantReflection.asJavaType(value); |
175 return !exactType.isPrimitive(); |
174 return !exactType.isPrimitive(); |
176 } |
175 } |
177 |
176 |
178 } |
177 } |