< 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 >