Mercurial > hg > graal-compiler
changeset 22339:ba6a5a66fa18
CFGPrinterObserver: add support for dumping a subset of blocks.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Thu, 16 Jul 2015 17:17:30 +0200 |
parents | e50e1e67e17e |
children | e830b9559d8f |
files | graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinterObserver.java |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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<? extends AbstractBlockBase<?>> getBlockList(Object object) { + return (List<? extends AbstractBlockBase<?>>) 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() {