< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/CheckGraalInvariants.java

Print this page




  32 import java.util.ArrayList;
  33 import java.util.Collections;
  34 import java.util.Enumeration;
  35 import java.util.List;
  36 import java.util.concurrent.LinkedBlockingQueue;
  37 import java.util.concurrent.ThreadPoolExecutor;
  38 import java.util.concurrent.TimeUnit;
  39 import java.util.zip.ZipEntry;
  40 import java.util.zip.ZipFile;
  41 
  42 import org.graalvm.compiler.api.replacements.Snippet;
  43 import org.graalvm.compiler.api.replacements.Snippet.ConstantParameter;
  44 import org.graalvm.compiler.api.replacements.Snippet.NonNullParameter;
  45 import org.graalvm.compiler.api.replacements.Snippet.VarargsParameter;
  46 import org.graalvm.compiler.api.test.Graal;
  47 import org.graalvm.compiler.bytecode.BridgeMethodUtils;
  48 import org.graalvm.compiler.core.CompilerThreadFactory;
  49 import org.graalvm.compiler.core.common.LIRKind;
  50 import org.graalvm.compiler.core.common.type.ArithmeticOpTable;
  51 import org.graalvm.compiler.debug.DebugCloseable;
  52 import org.graalvm.compiler.debug.DebugHandlersFactory;
  53 import org.graalvm.compiler.debug.DebugContext;

  54 import org.graalvm.compiler.debug.GraalError;
  55 import org.graalvm.compiler.graph.Node;
  56 import org.graalvm.compiler.graph.NodeClass;
  57 import org.graalvm.compiler.java.GraphBuilderPhase;
  58 import org.graalvm.compiler.nodeinfo.NodeInfo;
  59 import org.graalvm.compiler.nodes.PhiNode;
  60 import org.graalvm.compiler.nodes.StructuredGraph;
  61 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
  62 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration;
  63 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
  64 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins;
  65 import org.graalvm.compiler.options.OptionValues;
  66 import org.graalvm.compiler.phases.OptimisticOptimizations;
  67 import org.graalvm.compiler.phases.PhaseSuite;
  68 import org.graalvm.compiler.phases.VerifyPhase;
  69 import org.graalvm.compiler.phases.VerifyPhase.VerificationError;
  70 import org.graalvm.compiler.phases.contract.VerifyNodeCosts;
  71 import org.graalvm.compiler.phases.tiers.HighTierContext;
  72 import org.graalvm.compiler.phases.util.Providers;
  73 import org.graalvm.compiler.phases.verify.VerifyBailoutUsage;
  74 import org.graalvm.compiler.phases.verify.VerifyCallerSensitiveMethods;
  75 import org.graalvm.compiler.phases.verify.VerifyDebugUsage;


  76 import org.graalvm.compiler.phases.verify.VerifyInstanceOfUsage;
  77 import org.graalvm.compiler.phases.verify.VerifyUpdateUsages;
  78 import org.graalvm.compiler.phases.verify.VerifyUsageWithEquals;
  79 import org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage;
  80 import org.graalvm.compiler.runtime.RuntimeProvider;
  81 import org.graalvm.word.LocationIdentity;
  82 import org.junit.Assert;
  83 import org.junit.Assume;
  84 import org.junit.Test;
  85 
  86 import jdk.vm.ci.code.BailoutException;
  87 import jdk.vm.ci.code.Register;
  88 import jdk.vm.ci.code.Register.RegisterCategory;
  89 import jdk.vm.ci.meta.JavaField;
  90 import jdk.vm.ci.meta.JavaMethod;
  91 import jdk.vm.ci.meta.JavaType;
  92 import jdk.vm.ci.meta.MetaAccessProvider;
  93 import jdk.vm.ci.meta.ResolvedJavaMethod;
  94 import jdk.vm.ci.meta.ResolvedJavaType;
  95 import jdk.vm.ci.meta.Value;


 364         if (shouldVerifyEquals(graph.method())) {
 365             // If you add a new type to test here, be sure to add appropriate
 366             // methods to the BadUsageWithEquals class below
 367             new VerifyUsageWithEquals(Value.class).apply(graph, context);
 368             new VerifyUsageWithEquals(Register.class).apply(graph, context);
 369             new VerifyUsageWithEquals(RegisterCategory.class).apply(graph, context);
 370             new VerifyUsageWithEquals(JavaType.class).apply(graph, context);
 371             new VerifyUsageWithEquals(JavaMethod.class).apply(graph, context);
 372             new VerifyUsageWithEquals(JavaField.class).apply(graph, context);
 373             new VerifyUsageWithEquals(LocationIdentity.class).apply(graph, context);
 374             new VerifyUsageWithEquals(LIRKind.class).apply(graph, context);
 375             new VerifyUsageWithEquals(ArithmeticOpTable.class).apply(graph, context);
 376             new VerifyUsageWithEquals(ArithmeticOpTable.Op.class).apply(graph, context);
 377         }
 378         new VerifyDebugUsage().apply(graph, context);
 379         new VerifyCallerSensitiveMethods().apply(graph, context);
 380         new VerifyVirtualizableUsage().apply(graph, context);
 381         new VerifyUpdateUsages().apply(graph, context);
 382         new VerifyBailoutUsage().apply(graph, context);
 383         new VerifyInstanceOfUsage().apply(graph, context);


 384         if (graph.method().isBridge()) {
 385             BridgeMethodUtils.getBridgedMethod(graph.method());
 386         }
 387     }
 388 
 389     private static boolean matches(String[] filters, String s) {
 390         if (filters == null || filters.length == 0) {
 391             return true;
 392         }
 393         for (String filter : filters) {
 394             if (s.contains(filter)) {
 395                 return true;
 396             }
 397         }
 398         return false;
 399     }
 400 
 401     private static String printStackTraceToString(Throwable t) {
 402         StringWriter sw = new StringWriter();
 403         t.printStackTrace(new PrintWriter(sw));




  32 import java.util.ArrayList;
  33 import java.util.Collections;
  34 import java.util.Enumeration;
  35 import java.util.List;
  36 import java.util.concurrent.LinkedBlockingQueue;
  37 import java.util.concurrent.ThreadPoolExecutor;
  38 import java.util.concurrent.TimeUnit;
  39 import java.util.zip.ZipEntry;
  40 import java.util.zip.ZipFile;
  41 
  42 import org.graalvm.compiler.api.replacements.Snippet;
  43 import org.graalvm.compiler.api.replacements.Snippet.ConstantParameter;
  44 import org.graalvm.compiler.api.replacements.Snippet.NonNullParameter;
  45 import org.graalvm.compiler.api.replacements.Snippet.VarargsParameter;
  46 import org.graalvm.compiler.api.test.Graal;
  47 import org.graalvm.compiler.bytecode.BridgeMethodUtils;
  48 import org.graalvm.compiler.core.CompilerThreadFactory;
  49 import org.graalvm.compiler.core.common.LIRKind;
  50 import org.graalvm.compiler.core.common.type.ArithmeticOpTable;
  51 import org.graalvm.compiler.debug.DebugCloseable;

  52 import org.graalvm.compiler.debug.DebugContext;
  53 import org.graalvm.compiler.debug.DebugHandlersFactory;
  54 import org.graalvm.compiler.debug.GraalError;
  55 import org.graalvm.compiler.graph.Node;
  56 import org.graalvm.compiler.graph.NodeClass;
  57 import org.graalvm.compiler.java.GraphBuilderPhase;
  58 import org.graalvm.compiler.nodeinfo.NodeInfo;
  59 import org.graalvm.compiler.nodes.PhiNode;
  60 import org.graalvm.compiler.nodes.StructuredGraph;
  61 import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
  62 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration;
  63 import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
  64 import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins;
  65 import org.graalvm.compiler.options.OptionValues;
  66 import org.graalvm.compiler.phases.OptimisticOptimizations;
  67 import org.graalvm.compiler.phases.PhaseSuite;
  68 import org.graalvm.compiler.phases.VerifyPhase;
  69 import org.graalvm.compiler.phases.VerifyPhase.VerificationError;
  70 import org.graalvm.compiler.phases.contract.VerifyNodeCosts;
  71 import org.graalvm.compiler.phases.tiers.HighTierContext;
  72 import org.graalvm.compiler.phases.util.Providers;
  73 import org.graalvm.compiler.phases.verify.VerifyBailoutUsage;
  74 import org.graalvm.compiler.phases.verify.VerifyCallerSensitiveMethods;
  75 import org.graalvm.compiler.phases.verify.VerifyDebugUsage;
  76 import org.graalvm.compiler.phases.verify.VerifyGetOptionsUsage;
  77 import org.graalvm.compiler.phases.verify.VerifyGraphAddUsage;
  78 import org.graalvm.compiler.phases.verify.VerifyInstanceOfUsage;
  79 import org.graalvm.compiler.phases.verify.VerifyUpdateUsages;
  80 import org.graalvm.compiler.phases.verify.VerifyUsageWithEquals;
  81 import org.graalvm.compiler.phases.verify.VerifyVirtualizableUsage;
  82 import org.graalvm.compiler.runtime.RuntimeProvider;
  83 import org.graalvm.word.LocationIdentity;
  84 import org.junit.Assert;
  85 import org.junit.Assume;
  86 import org.junit.Test;
  87 
  88 import jdk.vm.ci.code.BailoutException;
  89 import jdk.vm.ci.code.Register;
  90 import jdk.vm.ci.code.Register.RegisterCategory;
  91 import jdk.vm.ci.meta.JavaField;
  92 import jdk.vm.ci.meta.JavaMethod;
  93 import jdk.vm.ci.meta.JavaType;
  94 import jdk.vm.ci.meta.MetaAccessProvider;
  95 import jdk.vm.ci.meta.ResolvedJavaMethod;
  96 import jdk.vm.ci.meta.ResolvedJavaType;
  97 import jdk.vm.ci.meta.Value;


 366         if (shouldVerifyEquals(graph.method())) {
 367             // If you add a new type to test here, be sure to add appropriate
 368             // methods to the BadUsageWithEquals class below
 369             new VerifyUsageWithEquals(Value.class).apply(graph, context);
 370             new VerifyUsageWithEquals(Register.class).apply(graph, context);
 371             new VerifyUsageWithEquals(RegisterCategory.class).apply(graph, context);
 372             new VerifyUsageWithEquals(JavaType.class).apply(graph, context);
 373             new VerifyUsageWithEquals(JavaMethod.class).apply(graph, context);
 374             new VerifyUsageWithEquals(JavaField.class).apply(graph, context);
 375             new VerifyUsageWithEquals(LocationIdentity.class).apply(graph, context);
 376             new VerifyUsageWithEquals(LIRKind.class).apply(graph, context);
 377             new VerifyUsageWithEquals(ArithmeticOpTable.class).apply(graph, context);
 378             new VerifyUsageWithEquals(ArithmeticOpTable.Op.class).apply(graph, context);
 379         }
 380         new VerifyDebugUsage().apply(graph, context);
 381         new VerifyCallerSensitiveMethods().apply(graph, context);
 382         new VerifyVirtualizableUsage().apply(graph, context);
 383         new VerifyUpdateUsages().apply(graph, context);
 384         new VerifyBailoutUsage().apply(graph, context);
 385         new VerifyInstanceOfUsage().apply(graph, context);
 386         new VerifyGraphAddUsage().apply(graph, context);
 387         new VerifyGetOptionsUsage().apply(graph, context);
 388         if (graph.method().isBridge()) {
 389             BridgeMethodUtils.getBridgedMethod(graph.method());
 390         }
 391     }
 392 
 393     private static boolean matches(String[] filters, String s) {
 394         if (filters == null || filters.length == 0) {
 395             return true;
 396         }
 397         for (String filter : filters) {
 398             if (s.contains(filter)) {
 399                 return true;
 400             }
 401         }
 402         return false;
 403     }
 404 
 405     private static String printStackTraceToString(Throwable t) {
 406         StringWriter sw = new StringWriter();
 407         t.printStackTrace(new PrintWriter(sw));


< prev index next >