public class DemandPointerFlowGraph extends AbstractDemandFlowGraph implements IFlowGraph
AssignLabel.noFilter()
Modifier and Type | Class and Description |
---|---|
static class |
DemandPointerFlowGraph.NewMultiDimInfo |
static class |
DemandPointerFlowGraph.StatementVisitor
A visitor that generates graph nodes and edges for an IR.
|
AbstractDemandFlowGraph.FlowStatementVisitor
callDefs, callParams, cg, cha, heapModel, mam, params, returns
Constructor and Description |
---|
DemandPointerFlowGraph(CallGraph cg,
HeapModel heapModel,
MemoryAccessMap mam,
IClassHierarchy cha) |
Modifier and Type | Method and Description |
---|---|
protected void |
addNodesForParameters(CGNode node,
IR ir)
add nodes for parameters and return values
|
static DemandPointerFlowGraph.NewMultiDimInfo |
getInfoForNewMultiDim(SSANewInstruction instruction,
HeapModel heapModel,
CGNode node)
collect information about the new instructions and putfield instructions used to model an allocation of a multi-dimensional
array.
|
protected AbstractDemandFlowGraph.FlowStatementVisitor |
makeVisitor(CGNode node) |
addBlockInstructionConstraints, addNodeInstructionConstraints, addSubgraphForNode, getParamPreds, getParamSuccs, getPossibleTargets, getPotentialCallers, getReturnPreds, getReturnSuccs, hasSubgraphForNode, unconditionallyAddConstraintsFromNode
addExceptionDefConstraints, addNodeConstantConstraints, addNodePassthruExceptionConstraints, addNodesForInvocations, convertPointerKeyToHeapModel, getArrayReads, getInstrReturningTo, getInstrsPassingParam, getReadsOfInstanceField, getReadsOfStaticField, getWritesToInstanceField, getWritesToStaticField, isParam, visitPreds, visitSuccs
copyInto, duplicate, getEdgeManager, getNodeManager
addEdge, getDefaultLabel, getEdgeLabels, getPredLabels, getPredNodeCount, getPredNodeNumbers, getPredNodes, getSuccLabels, getSuccNodeCount, getSuccNodeNumbers, getSuccNodes, hasEdge, removeEdge
getMaxNumber, getNode, getNumber, getPredNodeNumbers, getSuccNodeNumbers, iterateNodes
addEdge, addNode, containsNode, getNumberOfNodes, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, iterator, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addSubgraphForNode, getInstrReturningTo, getInstrsPassingParam, getPossibleTargets, getPotentialCallers, getReadsOfInstanceField, getReadsOfStaticField, getWritesToInstanceField, getWritesToStaticField, hasSubgraphForNode, isParam, visitPreds, visitSuccs
removeNodeAndEdges
addNode, containsNode, getNumberOfNodes, iterator, removeNode
forEach, spliterator
addEdge, getDefaultLabel, getEdgeLabels, getPredLabels, getPredNodeCount, getPredNodes, getSuccLabels, getSuccNodeCount, getSuccNodes, hasEdge, removeEdge
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
public DemandPointerFlowGraph(CallGraph cg, HeapModel heapModel, MemoryAccessMap mam, IClassHierarchy cha)
protected void addNodesForParameters(CGNode node, IR ir)
addNodesForParameters
in class AbstractDemandFlowGraph
protected AbstractDemandFlowGraph.FlowStatementVisitor makeVisitor(CGNode node)
makeVisitor
in class AbstractDemandFlowGraph
public static DemandPointerFlowGraph.NewMultiDimInfo getInfoForNewMultiDim(SSANewInstruction instruction, HeapModel heapModel, CGNode node)