Interface InterDataflowAnalysis<Node,Fact>
- Type Parameters:
Node
- type of ICFG nodesFact
- type of data-flow facts
- All Known Implementing Classes:
AbstractInterDataflowAnalysis
,InterConstantPropagation
public interface InterDataflowAnalysis<Node,Fact>
Template interface for defining inter-procedural data-flow analysis.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
void
Meets a fact into another (target) fact.newBoundaryFact
(Node boundary) transferEdge
(ICFGEdge<Node> edge, Fact out) Edge Transfer function for this analysis.boolean
transferNode
(Node node, Fact in, Fact out) Node Transfer function for the analysis.
-
Method Details
-
isForward
boolean isForward()- Returns:
- true if this analysis is forward, otherwise false.
-
newBoundaryFact
- Returns:
- new fact in boundary conditions, i.e., the fact for entry node in forward analysis or exit node in backward analysis.
-
newInitialFact
Fact newInitialFact()- Returns:
- new initial fact for non-boundary nodes.
-
meetInto
Meets a fact into another (target) fact. This function will be used to handle control-flow confluences. -
transferNode
Node Transfer function for the analysis. The function transfers data-flow from in (out) fact to out (in) fact for forward (backward) analysis.- Returns:
- true if the transfer changed the out (int) fact, otherwise false.
-
transferEdge
Edge Transfer function for this analysis.- Parameters:
edge
- the ICFG edge that the transfer function is applied on.out
- the OUT fact of source node of the edge.- Returns:
- the result of edge transfer function.
-