Class DemandPointerFlowGraph
java.lang.Object
com.ibm.wala.util.graph.AbstractGraph<Object>
com.ibm.wala.util.graph.AbstractNumberedGraph<Object>
com.ibm.wala.util.graph.labeled.AbstractNumberedLabeledGraph<Object,IFlowLabel>
com.ibm.wala.util.graph.labeled.SlowSparseNumberedLabeledGraph<Object,IFlowLabel>
com.ibm.wala.demandpa.flowgraph.AbstractFlowGraph
com.ibm.wala.demandpa.flowgraph.AbstractDemandFlowGraph
com.ibm.wala.demandpa.flowgraph.DemandPointerFlowGraph
- All Implemented Interfaces:
IFlowGraph
,EdgeManager<Object>
,Graph<Object>
,LabeledEdgeManager<Object,
,IFlowLabel> LabeledGraph<Object,
,IFlowLabel> NumberedLabeledEdgeManager<Object,
,IFlowLabel> NumberedLabeledGraph<Object,
,IFlowLabel> NodeManager<Object>
,NumberedEdgeManager<Object>
,NumberedGraph<Object>
,NumberedNodeManager<Object>
,Serializable
,Iterable<Object>
A graph representation of statements flowing pointer values, but not primitive values.
Nodes are variables, and edges are against value flow; assignment x = y yields edge from
x to y with label
AssignLabel.noFilter()
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
static class
A visitor that generates graph nodes and edges for an IR.Nested classes/interfaces inherited from class com.ibm.wala.demandpa.flowgraph.AbstractDemandFlowGraph
AbstractDemandFlowGraph.FlowStatementVisitor
-
Field Summary
Fields inherited from class com.ibm.wala.demandpa.flowgraph.AbstractFlowGraph
callDefs, callParams, cg, cha, heapModel, mam, params, returns
-
Constructor Summary
ConstructorDescriptionDemandPointerFlowGraph
(CallGraph cg, HeapModel heapModel, MemoryAccessMap mam, IClassHierarchy cha) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addNodesForParameters
(CGNode node, IR ir) add nodes for parameters and return valuesgetInfoForNewMultiDim
(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.makeVisitor
(CGNode node) Methods inherited from class com.ibm.wala.demandpa.flowgraph.AbstractDemandFlowGraph
addBlockInstructionConstraints, addNodeInstructionConstraints, addSubgraphForNode, getParamPreds, getParamSuccs, getPossibleTargets, getPotentialCallers, getReturnPreds, getReturnSuccs, hasSubgraphForNode, unconditionallyAddConstraintsFromNode
Methods inherited from class com.ibm.wala.demandpa.flowgraph.AbstractFlowGraph
addExceptionDefConstraints, addNodeConstantConstraints, addNodePassthruExceptionConstraints, addNodesForInvocations, convertPointerKeyToHeapModel, getArrayReads, getInstrReturningTo, getInstrsPassingParam, getReadsOfInstanceField, getReadsOfStaticField, getWritesToInstanceField, getWritesToStaticField, isParam, visitPreds, visitSuccs
Methods inherited from class com.ibm.wala.util.graph.labeled.SlowSparseNumberedLabeledGraph
copyInto, duplicate, getEdgeManager, getNodeManager
Methods inherited from class com.ibm.wala.util.graph.labeled.AbstractNumberedLabeledGraph
addEdge, edgeString, getDefaultLabel, getEdgeLabels, getPredLabels, getPredNodeCount, getPredNodeNumbers, getPredNodes, getSuccLabels, getSuccNodeCount, getSuccNodeNumbers, getSuccNodes, hasEdge, removeEdge
Methods inherited from class com.ibm.wala.util.graph.AbstractNumberedGraph
getMaxNumber, getNode, getNumber, getPredNodeNumbers, getSuccNodeNumbers, iterateNodes
Methods inherited from class com.ibm.wala.util.graph.AbstractGraph
addEdge, addNode, containsNode, getNumberOfNodes, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, iterator, nodeString, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeNode, removeNodeAndEdges, removeOutgoingEdges, stream, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.ibm.wala.util.graph.EdgeManager
addEdge, getPredNodeCount, getPredNodes, getSuccNodeCount, getSuccNodes, hasEdge, removeAllIncidentEdges, removeEdge, removeIncomingEdges, removeOutgoingEdges
Methods inherited from interface com.ibm.wala.util.graph.Graph
removeNodeAndEdges
Methods inherited from interface com.ibm.wala.demandpa.flowgraph.IFlowGraph
addSubgraphForNode, getInstrReturningTo, getInstrsPassingParam, getPossibleTargets, getPotentialCallers, getReadsOfInstanceField, getReadsOfStaticField, getWritesToInstanceField, getWritesToStaticField, hasSubgraphForNode, isParam, visitPreds, visitSuccs
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface com.ibm.wala.util.graph.labeled.LabeledEdgeManager
addEdge, getDefaultLabel, getEdgeLabels, getPredLabels, getPredNodeCount, getPredNodes, getPredNodes, getSuccLabels, getSuccNodeCount, getSuccNodes, hasEdge, removeEdge
Methods inherited from interface com.ibm.wala.util.graph.NodeManager
addNode, containsNode, getNumberOfNodes, iterator, removeNode, stream
Methods inherited from interface com.ibm.wala.util.graph.NumberedEdgeManager
getPredNodeNumbers, getSuccNodeNumbers
Methods inherited from interface com.ibm.wala.util.graph.NumberedNodeManager
getMaxNumber, getNode, getNumber, iterateNodes
-
Constructor Details
-
DemandPointerFlowGraph
public DemandPointerFlowGraph(CallGraph cg, HeapModel heapModel, MemoryAccessMap mam, IClassHierarchy cha)
-
-
Method Details
-
addNodesForParameters
add nodes for parameters and return values- Specified by:
addNodesForParameters
in classAbstractDemandFlowGraph
-
makeVisitor
- Specified by:
makeVisitor
in classAbstractDemandFlowGraph
-
getInfoForNewMultiDim
public 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. excludes the new instruction itself (i.e., the allocation of the top-level multi-dim array).
-