Search in sources :

Example 26 with InliningPhase

use of org.graalvm.compiler.phases.common.inlining.InliningPhase in project graal by oracle.

the class PolymorphicInliningTest method getGraph.

@SuppressWarnings("try")
private StructuredGraph getGraph(final String snippet, final boolean eagerInfopointMode) {
    DebugContext debug = getDebugContext();
    try (DebugContext.Scope s = debug.scope("InliningTest", new DebugDumpScope(snippet, true))) {
        ResolvedJavaMethod method = getResolvedJavaMethod(snippet);
        Builder builder = builder(method, AllowAssumptions.YES, debug);
        StructuredGraph graph = eagerInfopointMode ? parse(builder, getDebugGraphBuilderSuite()) : parse(builder, getEagerGraphBuilderSuite());
        try (DebugContext.Scope s2 = debug.scope("Inlining", graph)) {
            PhaseSuite<HighTierContext> graphBuilderSuite = eagerInfopointMode ? getCustomGraphBuilderSuite(GraphBuilderConfiguration.getDefault(getDefaultGraphBuilderPlugins()).withFullInfopoints(true)) : getDefaultGraphBuilderSuite();
            HighTierContext context = new HighTierContext(getProviders(), graphBuilderSuite, OptimisticOptimizations.ALL);
            debug.dump(DebugContext.BASIC_LEVEL, graph, "Graph");
            new CanonicalizerPhase().apply(graph, context);
            new InliningPhase(new CanonicalizerPhase()).apply(graph, context);
            debug.dump(DebugContext.BASIC_LEVEL, graph, "Graph");
            new CanonicalizerPhase().apply(graph, context);
            new DeadCodeEliminationPhase().apply(graph);
            return graph;
        }
    } catch (Throwable e) {
        throw debug.handle(e);
    }
}
Also used : StructuredGraph(org.graalvm.compiler.nodes.StructuredGraph) DebugDumpScope(org.graalvm.compiler.debug.DebugDumpScope) Builder(org.graalvm.compiler.nodes.StructuredGraph.Builder) CanonicalizerPhase(org.graalvm.compiler.phases.common.CanonicalizerPhase) DebugContext(org.graalvm.compiler.debug.DebugContext) HighTierContext(org.graalvm.compiler.phases.tiers.HighTierContext) InliningPhase(org.graalvm.compiler.phases.common.inlining.InliningPhase) DeadCodeEliminationPhase(org.graalvm.compiler.phases.common.DeadCodeEliminationPhase) ResolvedJavaMethod(jdk.vm.ci.meta.ResolvedJavaMethod)

Example 27 with InliningPhase

use of org.graalvm.compiler.phases.common.inlining.InliningPhase in project graal by oracle.

the class EATestBase method prepareGraph.

@SuppressWarnings("try")
protected void prepareGraph(String snippet, boolean iterativeEscapeAnalysis) {
    ResolvedJavaMethod method = getResolvedJavaMethod(snippet);
    DebugContext debug = getDebugContext();
    try (DebugContext.Scope s = debug.scope(getClass(), method, getCodeCache())) {
        graph = parseEager(method, AllowAssumptions.YES, debug);
        context = getDefaultHighTierContext();
        new InliningPhase(new CanonicalizerPhase()).apply(graph, context);
        new DeadCodeEliminationPhase().apply(graph);
        canonicalizeGraph();
        new PartialEscapePhase(iterativeEscapeAnalysis, false, new CanonicalizerPhase(), null, graph.getOptions()).apply(graph, context);
        postEACanonicalizeGraph();
        returnNodes = graph.getNodes(ReturnNode.TYPE).snapshot();
    } catch (Throwable e) {
        throw debug.handle(e);
    }
}
Also used : PartialEscapePhase(org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase) CanonicalizerPhase(org.graalvm.compiler.phases.common.CanonicalizerPhase) DebugContext(org.graalvm.compiler.debug.DebugContext) InliningPhase(org.graalvm.compiler.phases.common.inlining.InliningPhase) DeadCodeEliminationPhase(org.graalvm.compiler.phases.common.DeadCodeEliminationPhase) ResolvedJavaMethod(jdk.vm.ci.meta.ResolvedJavaMethod)

Aggregations

CanonicalizerPhase (org.graalvm.compiler.phases.common.CanonicalizerPhase)27 InliningPhase (org.graalvm.compiler.phases.common.inlining.InliningPhase)27 HighTierContext (org.graalvm.compiler.phases.tiers.HighTierContext)26 StructuredGraph (org.graalvm.compiler.nodes.StructuredGraph)24 DebugContext (org.graalvm.compiler.debug.DebugContext)9 DeadCodeEliminationPhase (org.graalvm.compiler.phases.common.DeadCodeEliminationPhase)9 ResolvedJavaMethod (jdk.vm.ci.meta.ResolvedJavaMethod)8 LoweringPhase (org.graalvm.compiler.phases.common.LoweringPhase)7 PartialEscapePhase (org.graalvm.compiler.virtual.phases.ea.PartialEscapePhase)7 DebugDumpScope (org.graalvm.compiler.debug.DebugDumpScope)5 Test (org.junit.Test)5 MidTierContext (org.graalvm.compiler.phases.tiers.MidTierContext)4 PhaseContext (org.graalvm.compiler.phases.tiers.PhaseContext)4 HashMap (java.util.HashMap)3 Node (org.graalvm.compiler.graph.Node)3 WriteBarrierAdditionPhase (org.graalvm.compiler.hotspot.phases.WriteBarrierAdditionPhase)3 Invoke (org.graalvm.compiler.nodes.Invoke)3 GuardLoweringPhase (org.graalvm.compiler.phases.common.GuardLoweringPhase)3 G1PostWriteBarrier (org.graalvm.compiler.hotspot.nodes.G1PostWriteBarrier)2 G1PreWriteBarrier (org.graalvm.compiler.hotspot.nodes.G1PreWriteBarrier)2