< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/GraphPrinterDumpHandler.java

Print this page
rev 56282 : [mq]: graal

*** 35,51 **** import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.WeakHashMap; import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.debug.DebugDumpHandler; import org.graalvm.compiler.debug.DebugDumpScope; import org.graalvm.compiler.debug.DebugOptions; import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.debug.TTY; - import org.graalvm.compiler.debug.DebugOptions.PrintGraphTarget; import org.graalvm.compiler.graph.Graph; import org.graalvm.compiler.nodes.StructuredGraph; import org.graalvm.compiler.options.OptionValues; import org.graalvm.compiler.phases.contract.NodeCostUtil; import org.graalvm.compiler.serviceprovider.GraalServices; --- 35,52 ---- import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.WeakHashMap; + import org.graalvm.compiler.core.common.CompilationIdentifier; import org.graalvm.compiler.debug.DebugContext; import org.graalvm.compiler.debug.DebugDumpHandler; import org.graalvm.compiler.debug.DebugDumpScope; import org.graalvm.compiler.debug.DebugOptions; + import org.graalvm.compiler.debug.DebugOptions.PrintGraphTarget; import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.debug.TTY; import org.graalvm.compiler.graph.Graph; import org.graalvm.compiler.nodes.StructuredGraph; import org.graalvm.compiler.options.OptionValues; import org.graalvm.compiler.phases.contract.NodeCostUtil; import org.graalvm.compiler.serviceprovider.GraalServices;
*** 64,73 **** --- 65,75 ---- private static final int FAILURE_LIMIT = 8; private final GraphPrinterSupplier printerSupplier; protected GraphPrinter printer; private List<String> previousInlineContext; + private CompilationIdentifier previousCompilationID = CompilationIdentifier.INVALID_COMPILATION_ID; private int[] dumpIds = {}; private int failuresCount; private Map<Graph, List<String>> inlineContextMap; private final String jvmArguments; private final String sunJavaCommand;
*** 134,143 **** --- 136,161 ---- } // Get all current JavaMethod instances in the context. List<String> inlineContext = getInlineContext(graph); + if (graph instanceof StructuredGraph) { + CompilationIdentifier compilationID = ((StructuredGraph) graph).compilationId(); + // If the graph to be dumped is with an invalid compilation id, it is likely derived + // from inlining. + if (compilationID != CompilationIdentifier.INVALID_COMPILATION_ID) { + if (previousCompilationID != CompilationIdentifier.INVALID_COMPILATION_ID && !compilationID.equals(previousCompilationID)) { + // Compilation ID does not match, close existing scopes. + for (int inlineDepth = previousInlineContext.size() - 1; inlineDepth >= 0; --inlineDepth) { + closeScope(debug, inlineDepth); + } + previousInlineContext = new ArrayList<>(); + } + previousCompilationID = compilationID; + } + } + if (!inlineContext.equals(previousInlineContext)) { Map<Object, Object> properties = new HashMap<>(); properties.put("graph", graph.toString()); addCompilationId(properties, graph); // Check for method scopes that must be closed since the previous dump.
< prev index next >