public class CFGPrinterObserver extends Object implements DebugDumpHandler
CFGPrinter
to produce a control flow graph for the
C1 Visualizer.Modifier and Type | Field and Description |
---|---|
private File |
cfgFile |
private CFGPrinter |
cfgPrinter |
private List<String> |
curDecorators |
private JavaMethod |
curMethod |
private Interval[] |
delayedIntervals |
private static DisassemblerProvider |
disassembler |
private boolean |
dumpFrontend |
private LIR |
lastLIR |
private static DisassemblerProvider |
NOP_DISASSEMBLER |
private static long |
timestamp |
private static AtomicInteger |
uniqueId |
Constructor and Description |
---|
CFGPrinterObserver(boolean dumpFrontend) |
Modifier and Type | Method and Description |
---|---|
private boolean |
checkMethodScope()
Looks for the outer most method and its
DebugDumpScope.decorator s in the current
debug scope and opens a new compilation scope if this pair does not match the current method
and decorator pair. |
void |
close()
Flushes and releases resources managed by this dump handler.
|
private static String |
disassemble(CodeCacheProvider codeCache,
CompilationResult compResult,
InstalledCode installedCode) |
void |
dump(Object object,
String message) |
void |
dumpSandboxed(Object object,
String message) |
private static List<? extends AbstractBlockBase<?>> |
getBlockList(Object object) |
private static DisassemblerProvider |
getDisassembler() |
private static boolean |
isBlockList(Object object) |
private static boolean |
isCompilationResultAndInstalledCode(Object object) |
private static boolean |
isFrontendObject(Object object) |
private CFGPrinter cfgPrinter
private JavaMethod curMethod
private List<String> curDecorators
private final boolean dumpFrontend
private static final long timestamp
private static final AtomicInteger uniqueId
private Interval[] delayedIntervals
private static DisassemblerProvider disassembler
private static final DisassemblerProvider NOP_DISASSEMBLER
public CFGPrinterObserver(boolean dumpFrontend)
public void dump(Object object, String message)
dump
in interface DebugDumpHandler
private boolean checkMethodScope()
DebugDumpScope.decorator
s in the current
debug scope and opens a new compilation scope if this pair does not match the current method
and decorator pair.private static boolean isFrontendObject(Object object)
public void dumpSandboxed(Object object, String message)
private static List<? extends AbstractBlockBase<?>> getBlockList(Object object)
private static boolean isBlockList(Object object)
private static DisassemblerProvider getDisassembler()
private static String disassemble(CodeCacheProvider codeCache, CompilationResult compResult, InstalledCode installedCode)
private static boolean isCompilationResultAndInstalledCode(Object object)
public void close()
DebugDumpHandler
DebugDumpHandler.dump(Object, String)
will create and open new resources. That is, this method can be
used to reset the handler.close
in interface DebugDumpHandler
close
in interface Closeable
close
in interface AutoCloseable