class CFGPrinter extends CompilationPrinter
Modifier and Type | Field and Description |
---|---|
protected ControlFlowGraph |
cfg |
private NodeMap<Block> |
latestScheduling |
protected LIR |
lir |
protected ResolvedJavaMethod |
method |
protected NodeLIRBuilder |
nodeLirGenerator |
private NodeBitMap |
printedNodes |
protected SchedulePhase |
schedule |
protected TargetDescription |
target |
COLUMN_END, HOVER_END, HOVER_SEP, HOVER_START, out
Constructor and Description |
---|
CFGPrinter(OutputStream out)
Creates a control flow graph printer.
|
Modifier and Type | Method and Description |
---|---|
private String |
blockToString(AbstractBlockBase<?> block) |
private boolean |
inFixedSchedule(Node node) |
private String |
nodeToString(Node node) |
private void |
printBlock(AbstractBlockBase<?> block,
boolean printNodes) |
private void |
printBlock(BciBlockMapping.BciBlock block) |
private void |
printBlockEpilog(AbstractBlockBase<?> block) |
private void |
printBlockProlog(AbstractBlockBase<?> block) |
void |
printCFG(String label,
BciBlockMapping blockMap)
Prints the control flow graph denoted by a given block map.
|
void |
printCFG(String label,
List<? extends AbstractBlockBase<?>> blocks,
boolean printNodes)
Prints the specified list of blocks.
|
private void |
printInterval(Interval interval) |
void |
printIntervals(String label,
Interval[] intervals) |
private void |
printLIR(AbstractBlockBase<?> block)
Prints the LIR for each instruction in a given block.
|
private void |
printNamedNodes(Node node,
NodePosIterator iter,
String prefix,
String suffix,
String hideSuffix) |
private void |
printNode(Node node,
boolean unscheduled) |
private void |
printNodes(Block block) |
void |
printSchedule(String message,
SchedulePhase theSchedule) |
private void |
printScheduledBlock(Block block,
List<Node> nodesFor) |
private void |
printStackInterval(StackInterval interval) |
void |
printStackIntervals(String label,
StackInterval[] intervals) |
private void |
schedule(Node input,
Block block) |
private void |
scheduleInputs(Node node,
Block nodeBlock) |
private String |
stateToString(FrameState state) |
private String |
stateValueToString(ValueNode value) |
begin, close, debugInfoToString, end, flush, globalOut, printBytecodes, printCompilation, printMachineCode, valueToString
protected TargetDescription target
protected NodeLIRBuilder nodeLirGenerator
protected ControlFlowGraph cfg
protected SchedulePhase schedule
protected ResolvedJavaMethod method
private NodeMap<Block> latestScheduling
private NodeBitMap printedNodes
public CFGPrinter(OutputStream out)
out
- where the output generated via this printer shown be writtenpublic void printCFG(String label, BciBlockMapping blockMap)
label
- A label describing the compilation phase that produced the control flow graph.blockMap
- A data structure describing the blocks in a method and how they are
connected.private void printBlock(BciBlockMapping.BciBlock block)
private boolean inFixedSchedule(Node node)
public void printCFG(String label, List<? extends AbstractBlockBase<?>> blocks, boolean printNodes)
label
- A label describing the compilation phase that produced the control flow graph.blocks
- The list of blocks to be printed.private void scheduleInputs(Node node, Block nodeBlock)
private void printBlock(AbstractBlockBase<?> block, boolean printNodes)
private void printBlockEpilog(AbstractBlockBase<?> block)
private void printBlockProlog(AbstractBlockBase<?> block)
private void printNodes(Block block)
private void printNamedNodes(Node node, NodePosIterator iter, String prefix, String suffix, String hideSuffix)
private String stateToString(FrameState state)
private String stateValueToString(ValueNode value)
private void printLIR(AbstractBlockBase<?> block)
block
- the block to printprivate String nodeToString(Node node)
private String blockToString(AbstractBlockBase<?> block)
public void printIntervals(String label, Interval[] intervals)
private void printInterval(Interval interval)
public void printStackIntervals(String label, StackInterval[] intervals)
private void printStackInterval(StackInterval interval)
public void printSchedule(String message, SchedulePhase theSchedule)
private void printScheduledBlock(Block block, List<Node> nodesFor)