src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/VerifyGraphAddUsage.java
changeset 55509 d58442b8abc1
parent 54328 37648a9c4a6a
child 58299 6df94ce3ab2f
equal deleted inserted replaced
55508:a6e2d06391d6 55509:d58442b8abc1
    39 import org.graalvm.compiler.nodes.ValueNode;
    39 import org.graalvm.compiler.nodes.ValueNode;
    40 import org.graalvm.compiler.nodes.ValuePhiNode;
    40 import org.graalvm.compiler.nodes.ValuePhiNode;
    41 import org.graalvm.compiler.nodes.ValueProxyNode;
    41 import org.graalvm.compiler.nodes.ValueProxyNode;
    42 import org.graalvm.compiler.nodes.java.MethodCallTargetNode;
    42 import org.graalvm.compiler.nodes.java.MethodCallTargetNode;
    43 import org.graalvm.compiler.nodes.java.NewInstanceNode;
    43 import org.graalvm.compiler.nodes.java.NewInstanceNode;
       
    44 import org.graalvm.compiler.nodes.spi.CoreProviders;
    44 import org.graalvm.compiler.nodes.spi.LoweringProvider;
    45 import org.graalvm.compiler.nodes.spi.LoweringProvider;
    45 import org.graalvm.compiler.phases.VerifyPhase;
    46 import org.graalvm.compiler.phases.VerifyPhase;
    46 import org.graalvm.compiler.phases.tiers.PhaseContext;
       
    47 
    47 
    48 import jdk.vm.ci.meta.ResolvedJavaMethod;
    48 import jdk.vm.ci.meta.ResolvedJavaMethod;
    49 import jdk.vm.ci.meta.ResolvedJavaType;
    49 import jdk.vm.ci.meta.ResolvedJavaType;
    50 
    50 
    51 public class VerifyGraphAddUsage extends VerifyPhase<PhaseContext> {
    51 public class VerifyGraphAddUsage extends VerifyPhase<CoreProviders> {
    52     private static final Method ADD_OR_UNIQUE;
    52     private static final Method ADD_OR_UNIQUE;
    53     private static final Method CONSTRUCTOR_NEW_INSTANCE;
    53     private static final Method CONSTRUCTOR_NEW_INSTANCE;
    54     private static final EconomicSet<Class<?>> ALLOWED_CLASSES = EconomicSet.create();
    54     private static final EconomicSet<Class<?>> ALLOWED_CLASSES = EconomicSet.create();
    55 
    55 
    56     static {
    56     static {
    64         ALLOWED_CLASSES.add(Graph.class);
    64         ALLOWED_CLASSES.add(Graph.class);
    65         ALLOWED_CLASSES.add(LoweringProvider.class);
    65         ALLOWED_CLASSES.add(LoweringProvider.class);
    66     }
    66     }
    67 
    67 
    68     @Override
    68     @Override
    69     protected void verify(StructuredGraph graph, PhaseContext context) {
    69     protected void verify(StructuredGraph graph, CoreProviders context) {
    70         boolean allowed = false;
    70         boolean allowed = false;
    71         for (Class<?> cls : ALLOWED_CLASSES) {
    71         for (Class<?> cls : ALLOWED_CLASSES) {
    72             ResolvedJavaType declaringClass = graph.method().getDeclaringClass();
    72             ResolvedJavaType declaringClass = graph.method().getDeclaringClass();
    73             if (context.getMetaAccess().lookupJavaType(cls).isAssignableFrom(declaringClass)) {
    73             if (context.getMetaAccess().lookupJavaType(cls).isAssignableFrom(declaringClass)) {
    74                 allowed = true;
    74                 allowed = true;
    85                 }
    85                 }
    86             }
    86             }
    87         }
    87         }
    88     }
    88     }
    89 
    89 
    90     private void checkNonFactory(StructuredGraph graph, EconomicSet<Node> seen, PhaseContext context, ValueNode node) {
    90     private void checkNonFactory(StructuredGraph graph, EconomicSet<Node> seen, CoreProviders context, ValueNode node) {
    91         if (seen.contains(node)) {
    91         if (seen.contains(node)) {
    92             return;
    92             return;
    93         }
    93         }
    94         seen.add(node);
    94         seen.add(node);
    95 
    95