# HG changeset patch # User Josef Eisl # Date 1437059850 -7200 # Node ID ba6a5a66fa18e725f3058eeae0276b46d8db15e7 # Parent e50e1e67e17e3a99bf862e77bb2e6ca4f4db680a CFGPrinterObserver: add support for dumping a subset of blocks. diff -r e50e1e67e17e -r ba6a5a66fa18 graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinterObserver.java --- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinterObserver.java Thu Jul 23 18:54:21 2015 +0200 +++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinterObserver.java Thu Jul 16 17:17:30 2015 +0200 @@ -36,6 +36,7 @@ import jdk.internal.jvmci.service.*; import com.oracle.graal.code.*; +import com.oracle.graal.compiler.common.cfg.*; import com.oracle.graal.compiler.gen.*; import com.oracle.graal.graph.*; import com.oracle.graal.java.*; @@ -204,6 +205,8 @@ } } else if (object instanceof StackInterval[]) { cfgPrinter.printStackIntervals(message, (StackInterval[]) object); + } else if (isBlockList(object)) { + cfgPrinter.printCFG(message, getBlockList(object), false); } cfgPrinter.target = null; @@ -214,6 +217,15 @@ } + @SuppressWarnings("unchecked") + private static List> getBlockList(Object object) { + return (List>) object; + } + + private static boolean isBlockList(Object object) { + return object instanceof List && ((List) object).size() > 0 && ((List) object).get(0) instanceof AbstractBlockBase; + } + private static DisassemblerProvider disassembler; private static final DisassemblerProvider NOP_DISASSEMBLER = new DisassemblerProvider() {