Search in sources :

Example 6 with NodeEventScope

use of org.graalvm.compiler.graph.Graph.NodeEventScope in project graal by oracle.

the class BasePhase method shouldDump.

@SuppressWarnings("try")
private boolean shouldDump(StructuredGraph graph, C context) {
    DebugContext debug = graph.getDebug();
    String phaseChange = DebugOptions.DumpOnPhaseChange.getValue(graph.getOptions());
    if (phaseChange != null && Pattern.matches(phaseChange, getClass().getSimpleName())) {
        StructuredGraph graphCopy = (StructuredGraph) graph.copy(graph.getDebug());
        GraphChangeListener listener = new GraphChangeListener(graphCopy);
        try (NodeEventScope s = graphCopy.trackNodeEvents(listener)) {
            try (DebugContext.Scope s2 = debug.sandbox("GraphChangeListener", null)) {
                run(graphCopy, context);
            } catch (Throwable t) {
                debug.handle(t);
            }
        }
        return listener.changed;
    }
    return false;
}
Also used : NodeEventScope(org.graalvm.compiler.graph.Graph.NodeEventScope) StructuredGraph(org.graalvm.compiler.nodes.StructuredGraph) DebugContext(org.graalvm.compiler.debug.DebugContext)

Aggregations

NodeEventScope (org.graalvm.compiler.graph.Graph.NodeEventScope)6 Node (org.graalvm.compiler.graph.Node)4 HashSetNodeEventListener (org.graalvm.compiler.phases.common.util.HashSetNodeEventListener)4 DebugContext (org.graalvm.compiler.debug.DebugContext)3 Simplifiable (org.graalvm.compiler.graph.spi.Simplifiable)2 StructuredGraph (org.graalvm.compiler.nodes.StructuredGraph)2 ControlFlowGraph (org.graalvm.compiler.nodes.cfg.ControlFlowGraph)2 EconomicSet (org.graalvm.collections.EconomicSet)1 RetryableBailoutException (org.graalvm.compiler.core.common.RetryableBailoutException)1 CompilationAlarm (org.graalvm.compiler.core.common.util.CompilationAlarm)1 AbstractBeginNode (org.graalvm.compiler.nodes.AbstractBeginNode)1 AbstractMergeNode (org.graalvm.compiler.nodes.AbstractMergeNode)1 FixedNode (org.graalvm.compiler.nodes.FixedNode)1 InvokeWithExceptionNode (org.graalvm.compiler.nodes.InvokeWithExceptionNode)1 LogicConstantNode (org.graalvm.compiler.nodes.LogicConstantNode)1 LoopBeginNode (org.graalvm.compiler.nodes.LoopBeginNode)1 LoopEndNode (org.graalvm.compiler.nodes.LoopEndNode)1 LoopExitNode (org.graalvm.compiler.nodes.LoopExitNode)1 PhiNode (org.graalvm.compiler.nodes.PhiNode)1 ReturnNode (org.graalvm.compiler.nodes.ReturnNode)1