< prev index next >

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

Print this page
rev 52889 : 8214023: Update Graal

*** 81,90 **** --- 81,91 ---- import org.graalvm.compiler.nodes.Cancellable; import org.graalvm.compiler.nodes.ConstantNode; import org.graalvm.compiler.nodes.FixedWithNextNode; import org.graalvm.compiler.nodes.FrameState; import org.graalvm.compiler.nodes.FullInfopointNode; + import org.graalvm.compiler.nodes.Invoke; import org.graalvm.compiler.nodes.InvokeNode; import org.graalvm.compiler.nodes.InvokeWithExceptionNode; import org.graalvm.compiler.nodes.ParameterNode; import org.graalvm.compiler.nodes.ProxyNode; import org.graalvm.compiler.nodes.ReturnNode;
*** 109,118 **** --- 110,122 ---- import org.graalvm.compiler.phases.OptimisticOptimizations; import org.graalvm.compiler.phases.Phase; import org.graalvm.compiler.phases.PhaseSuite; import org.graalvm.compiler.phases.common.CanonicalizerPhase; import org.graalvm.compiler.phases.common.ConvertDeoptimizeToGuardPhase; + import org.graalvm.compiler.phases.common.inlining.InliningPhase; + import org.graalvm.compiler.phases.common.inlining.info.InlineInfo; + import org.graalvm.compiler.phases.common.inlining.policy.GreedyInliningPolicy; import org.graalvm.compiler.phases.schedule.SchedulePhase; import org.graalvm.compiler.phases.schedule.SchedulePhase.SchedulingStrategy; import org.graalvm.compiler.phases.tiers.HighTierContext; import org.graalvm.compiler.phases.tiers.MidTierContext; import org.graalvm.compiler.phases.tiers.Suites;
*** 595,609 **** protected final Providers getProviders() { return providers; } protected HighTierContext getDefaultHighTierContext() { ! return new HighTierContext(getProviders(), getDefaultGraphBuilderSuite(), OptimisticOptimizations.ALL); } protected MidTierContext getDefaultMidTierContext() { ! return new MidTierContext(getProviders(), getTargetProvider(), OptimisticOptimizations.ALL, null); } protected SnippetReflectionProvider getSnippetReflection() { return Graal.getRequiredCapability(SnippetReflectionProvider.class); } --- 599,613 ---- protected final Providers getProviders() { return providers; } protected HighTierContext getDefaultHighTierContext() { ! return new HighTierContext(getProviders(), getDefaultGraphBuilderSuite(), getOptimisticOptimizations()); } protected MidTierContext getDefaultMidTierContext() { ! return new MidTierContext(getProviders(), getTargetProvider(), getOptimisticOptimizations(), null); } protected SnippetReflectionProvider getSnippetReflection() { return Graal.getRequiredCapability(SnippetReflectionProvider.class); }
*** 630,639 **** --- 634,667 ---- protected LoweringProvider getLowerer() { return getProviders().getLowerer(); } + protected final BasePhase<HighTierContext> createInliningPhase() { + return createInliningPhase(new CanonicalizerPhase()); + } + + protected BasePhase<HighTierContext> createInliningPhase(CanonicalizerPhase canonicalizer) { + return createInliningPhase(null, canonicalizer); + } + + static class GreedyTestInliningPolicy extends GreedyInliningPolicy { + GreedyTestInliningPolicy(Map<Invoke, Double> hints) { + super(hints); + } + + @Override + protected int previousLowLevelGraphSize(InlineInfo info) { + // Ignore previous compiles for tests + return 0; + } + } + + protected BasePhase<HighTierContext> createInliningPhase(Map<Invoke, Double> hints, CanonicalizerPhase canonicalizer) { + return new InliningPhase(new GreedyTestInliningPolicy(hints), canonicalizer); + } + protected CompilationIdentifier getCompilationId(ResolvedJavaMethod method) { return getBackend().getCompilationIdentifier(method); } protected CompilationIdentifier getOrCreateCompilationId(final ResolvedJavaMethod installedCodeOwner, StructuredGraph graph) {
*** 1037,1046 **** --- 1065,1078 ---- assert graph == null || graph.getOptions() == options; CompilationIdentifier compilationId = getOrCreateCompilationId(installedCodeOwner, graph); return compile(installedCodeOwner, graph, new CompilationResult(compilationId), compilationId, options); } + protected OptimisticOptimizations getOptimisticOptimizations() { + return OptimisticOptimizations.ALL; + } + /** * Compiles a given method. * * @param installedCodeOwner the method the compiled code will be associated with when installed * @param graph the graph to be compiled for {@code installedCodeOwner}. If null, a graph will
*** 1053,1063 **** StructuredGraph graphToCompile = graph == null ? parseForCompile(installedCodeOwner, compilationId, options) : graph; lastCompiledGraph = graphToCompile; DebugContext debug = graphToCompile.getDebug(); try (DebugContext.Scope s = debug.scope("Compile", graphToCompile)) { assert options != null; ! Request<CompilationResult> request = new Request<>(graphToCompile, installedCodeOwner, getProviders(), getBackend(), getDefaultGraphBuilderSuite(), OptimisticOptimizations.ALL, graphToCompile.getProfilingInfo(), createSuites(options), createLIRSuites(options), compilationResult, CompilationResultBuilderFactory.Default, true); return GraalCompiler.compile(request); } catch (Throwable e) { throw debug.handle(e); } --- 1085,1095 ---- StructuredGraph graphToCompile = graph == null ? parseForCompile(installedCodeOwner, compilationId, options) : graph; lastCompiledGraph = graphToCompile; DebugContext debug = graphToCompile.getDebug(); try (DebugContext.Scope s = debug.scope("Compile", graphToCompile)) { assert options != null; ! Request<CompilationResult> request = new Request<>(graphToCompile, installedCodeOwner, getProviders(), getBackend(), getDefaultGraphBuilderSuite(), getOptimisticOptimizations(), graphToCompile.getProfilingInfo(), createSuites(options), createLIRSuites(options), compilationResult, CompilationResultBuilderFactory.Default, true); return GraalCompiler.compile(request); } catch (Throwable e) { throw debug.handle(e); }
*** 1072,1082 **** applyFrontEnd(graph); return graph; } protected void applyFrontEnd(StructuredGraph graph) { ! GraalCompiler.emitFrontEnd(getProviders(), getBackend(), graph, getDefaultGraphBuilderSuite(), OptimisticOptimizations.ALL, graph.getProfilingInfo(), createSuites(graph.getOptions())); } protected StructuredGraph lastCompiledGraph; protected SpeculationLog getSpeculationLog() { --- 1104,1114 ---- applyFrontEnd(graph); return graph; } protected void applyFrontEnd(StructuredGraph graph) { ! GraalCompiler.emitFrontEnd(getProviders(), getBackend(), graph, getDefaultGraphBuilderSuite(), getOptimisticOptimizations(), graph.getProfilingInfo(), createSuites(graph.getOptions())); } protected StructuredGraph lastCompiledGraph; protected SpeculationLog getSpeculationLog() {
< prev index next >