src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/replacements/ClassGetHubNode.java
changeset 48861 47f19ff9903c
parent 48190 25cfedf27edc
child 49873 26ebfe8ce852
equal deleted inserted replaced
48860:5bce1b7e7800 48861:47f19ff9903c
    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 }