Modifier and Type | Class and Description |
---|---|
static class |
CallGraph.ReverseEdge<ContextType extends IContext<?>> |
Constructor and Description |
---|
CallGraph()
Constructs a new initially empty call graph.
|
Modifier and Type | Method and Description |
---|---|
void |
addSource(AbstractNode caller,
ContextType caller_context,
BasicBlock callee,
ContextType callee_context,
ContextType edge_context,
boolean implicit)
Adds a reverse edge.
|
boolean |
addTarget(AbstractNode caller,
ContextType caller_context,
BasicBlock callee,
ContextType edge_context,
StateType edge_state,
SolverSynchronizer sync,
IAnalysis<StateType,ContextType,CallEdgeType,?,?> analysis,
ISolverMonitoring<StateType,ContextType> monitoring)
Adds an edge from the given call node to the given function.
|
CallEdgeType |
getCallEdge(AbstractNode caller,
ContextType caller_context,
BasicBlock callee,
ContextType edge_context)
Returns the specified call edge info.
|
java.util.Map<NodeAndContext<ContextType>,java.util.Map<BlockAndContext<ContextType>,CallEdgeType>> |
getCallEdgeInfo() |
java.util.Map<BlockAndContext<ContextType>,CallEdgeType> |
getCallEdges(AbstractNode caller,
ContextType caller_context)
Returns the specified map from (callee entry, edge context) to call edge info.
|
java.lang.String |
getCallGraphStatistics()
Return call graph statistics on the number of invocations in human readable form.
|
java.util.Map<BlockAndContext<ContextType>,java.util.Set<CallGraph.ReverseEdge<ContextType>>> |
getCallSources() |
int |
getContextOrder(ContextType c)
Returns the occurrence order of the given context.
|
int |
getFunctionEntryOrder(BlockAndContext<ContextType> bc)
Returns the occurrence order of the given (basic block,context).
|
int |
getNumberOfInvocationsInDifferentContexts(int max_targets)
Returns the total number of call nodes with reachable contexts.
|
int |
getSizeIgnoringContexts() |
java.util.Set<CallGraph.ReverseEdge<ContextType>> |
getSources(BlockAndContext<ContextType> bc)
Returns the call nodes, caller contexts, edge contexts, and implicit flags that have the given basic block as target for a given callee context.
|
void |
registerContext(ContextType c)
Assigns an order to the given function entry.
|
void |
registerFunctionEntry(BlockAndContext<ContextType> bc)
Assigns an order to the given function entry.
|
int |
size() |
void |
toDot(java.io.PrintWriter out)
Produces a Graphviz dot representation of this call graph.
|
void |
toDot(java.io.PrintWriter out,
boolean show_source_locations)
Produces a Graphviz dot representation of this call graph.
|
java.lang.String |
toString()
Returns a textual description of this call graph.
|
public void addSource(AbstractNode caller, ContextType caller_context, BasicBlock callee, ContextType callee_context, ContextType edge_context, boolean implicit)
public boolean addTarget(AbstractNode caller, ContextType caller_context, BasicBlock callee, ContextType edge_context, StateType edge_state, SolverSynchronizer sync, IAnalysis<StateType,ContextType,CallEdgeType,?,?> analysis, ISolverMonitoring<StateType,ContextType> monitoring)
public CallEdgeType getCallEdge(AbstractNode caller, ContextType caller_context, BasicBlock callee, ContextType edge_context)
public java.util.Map<NodeAndContext<ContextType>,java.util.Map<BlockAndContext<ContextType>,CallEdgeType>> getCallEdgeInfo()
public java.util.Map<BlockAndContext<ContextType>,CallEdgeType> getCallEdges(AbstractNode caller, ContextType caller_context)
public java.lang.String getCallGraphStatistics()
public java.util.Map<BlockAndContext<ContextType>,java.util.Set<CallGraph.ReverseEdge<ContextType>>> getCallSources()
public int getContextOrder(ContextType c)
public int getFunctionEntryOrder(BlockAndContext<ContextType> bc)
public int getNumberOfInvocationsInDifferentContexts(int max_targets)
max_targets
- if nonzero, only include calls with at most max_targets target functionspublic int getSizeIgnoringContexts()
public java.util.Set<CallGraph.ReverseEdge<ContextType>> getSources(BlockAndContext<ContextType> bc)
public void registerContext(ContextType c)
public void registerFunctionEntry(BlockAndContext<ContextType> bc)
public int size()
public void toDot(java.io.PrintWriter out)
public void toDot(java.io.PrintWriter out, boolean show_source_locations)
show_source_locations
- if true, each function will be annotated with its source locationpublic java.lang.String toString()
toString
in class java.lang.Object
Copyright © 2009-2019 Aarhus University