Package | Description |
---|---|
org.apache.flex.abc.diagnostics |
This package contains classes and interfaces used to report non-fatal
diagnostics from ABC processing.
|
org.apache.flex.abc.graph |
This package cotains interfaces that define the behavior of a flowgraph.
|
org.apache.flex.abc.graph.algorithms |
This package contains standard static analysis data structures,
such as dominator trees and dominance frontiers.
|
org.apache.flex.abc.models |
This package contains higher-level models of a method body
and encoders to translate from the basic ABC model
into these higher-level models.
|
org.apache.flex.abc.semantics |
This package contains representations of the individual components of an ABC.
|
org.apache.flex.abc.visitors |
This package contains the most basic model of ABC, which uses visitors.
|
org.apache.flex.compiler.problems |
This package contains classes representing various problems
that can be encountered during compilation.
|
Modifier and Type | Method and Description |
---|---|
void |
DiagnosticsAggregator.operandStackUnderflow(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block,
int instructionIndex) |
void |
AbstractDiagnosticVisitor.operandStackUnderflow(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block,
int instructionIndex) |
void |
DiagnosticsAggregator.scopeStackUnderflow(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block,
int instructionIndex) |
void |
AbstractDiagnosticVisitor.scopeStackUnderflow(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block,
int instructionIndex) |
void |
DiagnosticsAggregator.unreachableBlock(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block) |
void |
AbstractDiagnosticVisitor.unreachableBlock(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block) |
Modifier and Type | Method and Description |
---|---|
IBasicBlock |
IFlowgraph.getBlock(Label l)
Get a Label's target Block.
|
IBasicBlock |
IFlowgraph.getStartBlock()
Get the start block.
|
Modifier and Type | Method and Description |
---|---|
Iterable<IBasicBlock> |
IFlowgraph.blocksInControlFlowOrder()
Get an iterator that will iterate over the blocks in the control flow
graph in control flow order.
|
List<IBasicBlock> |
IFlowgraph.getBlocksInEntryOrder()
Get the graph's blocks in their original order.
|
Collection<? extends IBasicBlock> |
IBasicBlock.getSuccessors()
Get this block's successors; this defines the set of
edges in the
flowgraph . |
Modifier and Type | Method and Description |
---|---|
int |
IFlowgraph.findLineNumber(IBasicBlock b)
Find the closest matching line number to the start of a block.
|
int |
IFlowgraph.findLineNumber(IBasicBlock b,
int initialOffset)
Find the nearest debugline instruction preceeding the given
(Block,offset) position and fetch its line number.
|
String |
IFlowgraph.findSourcePath(IBasicBlock b)
Find the nearest debugfile instruction to the start of
the given block and fetch its source path.
|
String |
IFlowgraph.findSourcePath(IBasicBlock b,
int initialOffset)
Find the nearest debugfile instruction preceeding the given
(Block,offset) position and fetch its source path.
|
boolean |
IFlowgraph.isCatchTarget(IBasicBlock b)
Is the given Block a catch target?
|
boolean |
IFlowgraph.isReachable(IBasicBlock b)
Is the given Block reachable?
|
void |
IFlowgraph.removeUnreachableBlock(IBasicBlock b)
Remove an unreachable block from the CFG.
|
Modifier and Type | Method and Description |
---|---|
IBasicBlock |
DepthFirstPreorderIterator.next() |
Modifier and Type | Method and Description |
---|---|
DominatorTree.Multimap<IBasicBlock> |
DominatorTree.getDominanceFrontiers()
Compute and/or fetch the dominance frontiers as a Multimap.
|
DominatorTree.Multimap<IBasicBlock> |
DominatorTree.getDominatorTree()
Compute and/or fetch the dominator tree as a Multimap.
|
Map<IBasicBlock,IBasicBlock> |
DominatorTree.getIdoms()
Create and/or fetch the map of immediate dominators.
|
Map<IBasicBlock,IBasicBlock> |
DominatorTree.getIdoms()
Create and/or fetch the map of immediate dominators.
|
Iterable<IBasicBlock> |
DominatorTree.reverseTopologicalTraversal()
Create and/or fetch a reverse topological traversal of the dominator tree,
such that for every node, node appears before idom(node).
|
List<IBasicBlock> |
DominatorTree.topologicalTraversal()
Create and/or fetch a topological traversal of the dominator tree,
such that for every node, idom(node) appears before node.
|
Constructor and Description |
---|
DominatorTree(IBasicBlock root)
Construct a DominatorTree from a root.
|
Constructor and Description |
---|
DepthFirstPreorderIterator(Collection<? extends IBasicBlock> roots) |
DominatorTree(Collection<? extends IBasicBlock> roots)
Construct a DominatorTree from a collection of "roots."
|
Modifier and Type | Method and Description |
---|---|
IBasicBlock |
TreeModelEncoder.getCurrentBlock()
Get the block currently being analyzed.
|
Modifier and Type | Method and Description |
---|---|
T |
TreeModelVisitor.addMergePoint(IBasicBlock toInit)
Add a merge node, where values from several blocks
combine in the dataflow graph.
|
T |
FrameModelVisitor.branch(Instruction i,
IBasicBlock target)
Handle a branch instruction.
|
TreeModelEncoder.Frame |
TreeModelEncoder.getFrame(IBasicBlock b)
Get the Frame that corresponds to a Block.
|
boolean |
TreeModelVisitor.visitBlock(IBasicBlock b)
Begin a visit to a block.
|
boolean |
FrameModelVisitor.visitBlock(IBasicBlock b)
Visit a new Block.
|
boolean |
FrameModelEncoder.visitBlock(IBasicBlock b)
Visit a Block.
|
void |
FrameModelVisitor.visitEdge(IBasicBlock from,
IBasicBlock to)
Visit a control-flow edge from one Block to another.
|
void |
TreeModelVisitor.visitEnd(IBasicBlock b)
Finish visiting a block.
|
void |
FrameModelEncoder.visitEnd(IBasicBlock b) |
void |
FrameModelVisitor.visitEndBlock(IBasicBlock b)
End a visit to a block.
|
Modifier and Type | Method and Description |
---|---|
T |
FrameModelVisitor.multiwayBranch(Instruction i,
Collection<IBasicBlock> targets)
Handle a multibranch instruction.
|
T |
TreeModelVisitor.translateBranch(Instruction insn,
Collection<IBasicBlock> targets)
Translate a branch Instruction and its targets into
an intermediate form.
|
Modifier and Type | Class and Description |
---|---|
class |
Block
Block implements
IBasicBlock and is
the normal representation of a vertex in a
method's flowgraph. |
Modifier and Type | Method and Description |
---|---|
IBasicBlock |
MethodBodyInfo.getBlock(Label target)
Get the block that the label corresponds to.
|
IBasicBlock |
ControlFlowGraph.getBlock(Label l)
Get a Label's target Block.
|
IBasicBlock |
MethodBodyInfo.getBlock(Label target,
boolean throwOnError)
Get the block that the label corresponds to.
|
IBasicBlock |
ControlFlowGraph.getStartBlock()
Get the start block.
|
Modifier and Type | Method and Description |
---|---|
Iterable<IBasicBlock> |
ControlFlowGraph.blocksInControlFlowOrder()
Get an iterator that will iterate over the blocks in the graph.
|
List<IBasicBlock> |
ControlFlowGraph.getBlocksInEntryOrder()
Get the graph's blocks in their original order.
|
Collection<IBasicBlock> |
Block.getSuccessors() |
Modifier and Type | Method and Description |
---|---|
int |
ControlFlowGraph.findLineNumber(IBasicBlock b)
Find the closest matching line number to the start of a block.
|
int |
ControlFlowGraph.findLineNumber(IBasicBlock b,
int initialOffset)
Find the nearest debugline instruction preceeding the given
(Block,offset) position and fetch its line number.
|
String |
ControlFlowGraph.findSourcePath(IBasicBlock b)
Find the nearest debugfile instruction to the start of
the given block and fetch its source path.
|
String |
ControlFlowGraph.findSourcePath(IBasicBlock b,
int initialOffset)
Find the nearest instruction preceeding the given
(Block,offset) position and fetch its source path.
|
boolean |
ControlFlowGraph.isCatchTarget(IBasicBlock b)
Is the given Block a catch target?
|
boolean |
ControlFlowGraph.isReachable(IBasicBlock b)
Is the given Block reachable?
|
void |
ControlFlowGraph.removeUnreachableBlock(IBasicBlock b)
Remove an unreachable block from the CFG.
|
boolean |
FrameCountVisitor.visitBlock(IBasicBlock b)
Visit a new Block.
|
void |
FrameCountVisitor.visitEnd(IBasicBlock b) |
Modifier and Type | Method and Description |
---|---|
void |
IDiagnosticsVisitor.operandStackUnderflow(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block,
int instructionIndex)
An underflow of operand stack was detected in a basic block in a method.
|
void |
IDiagnosticsVisitor.scopeStackUnderflow(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block,
int instructionIndex)
An underflow of scope stack was detected in a basic block in a method.
|
void |
IDiagnosticsVisitor.unreachableBlock(MethodBodyInfo methodBodyInfo,
IFlowgraph cfg,
IBasicBlock block)
A basic block in a method has been found to be unreachable.
|
boolean |
IFlowGraphVisitor.visitBlock(IBasicBlock b)
Visit a new Block.
|
void |
IFlowGraphVisitor.visitEnd(IBasicBlock b)
Finish visiting a Block.
|
Modifier and Type | Method and Description |
---|---|
static ISourceLocation |
InvalidByteCodeGeneratedProblem.computeSourceLocationForBlockAndInstruction(IFlowgraph cfg,
IBasicBlock b,
int instructionIndex)
Helper method that will use debug op code information to deduce a source
location from an instruction offset in a
Block in a
IFlowgraph . |
Constructor and Description |
---|
OperandStackUnderflowProblem(IFlowgraph cfg,
IBasicBlock b,
int instructionIndex) |
ScopeStackUnderflowProblem(IFlowgraph cfg,
IBasicBlock b,
int instructionIndex) |
Copyright © 2016 The Apache Software Foundation. All rights reserved.