public class CombinedDUAnalysis extends BackwardFlowAnalysis implements CombinedAnalysis, LocalDefs, LocalUses, LiveLocals
filterUnitToAfterFlow, unitToAfterFlowfilterUnitToBeforeFlow, graph, unitToBeforeFlow| Modifier and Type | Method and Description |
|---|---|
protected void |
copy(java.lang.Object source,
java.lang.Object dest)
Creates a copy of the
source flow object in dest. |
protected java.lang.Object |
entryInitialFlow()
Returns the initial flow value for entry/exit graph nodes.
|
protected void |
flowThrough(java.lang.Object outValue,
java.lang.Object unit,
java.lang.Object inValue)
Given the merge of the
out sets, compute the in set for s (or in to out, depending on direction). |
java.util.List<Unit> |
getDefsOfAt(Local l,
Unit s)
Returns the definition sites for a Local at a certain
point (Unit) in a method.
|
java.util.List |
getLiveLocalsAfter(Unit u)
Returns the list of Locals that are live after the specified
Unit.
|
java.util.List |
getLiveLocalsBefore(Unit u)
Returns the list of Locals that are live before the specified
Unit.
|
java.util.List |
getUsesOf(Unit u)
Returns a list of the Units that use the Local that is
defined by a given Unit.
|
protected void |
merge(java.lang.Object inoutO,
java.lang.Object inO) |
protected void |
merge(java.lang.Object in1O,
java.lang.Object in2O,
java.lang.Object outO)
Compute the merge of the
in1 and in2 sets, putting the result into out. |
protected java.lang.Object |
newInitialFlow()
Returns the flow object corresponding to the initial values for
each graph node.
|
static CombinedAnalysis |
v(UnitGraph graph) |
constructWorklist, doAnalysis, isForwardconstructOrderer, getFlowAftergetFlowBefore, merge, mergeInto, treatTrapHandlersAsEntriespublic java.util.List<Unit> getDefsOfAt(Local l, Unit s)
LocalDefsgetDefsOfAt in interface LocalDefsl - the Local in question.s - a unit that specifies the method context (location)
to query for the definitions of the Local.public java.util.List getUsesOf(Unit u)
LocalUsespublic java.util.List getLiveLocalsBefore(Unit u)
LiveLocalsgetLiveLocalsBefore in interface LiveLocalsu - the Unit that defines this query.public java.util.List getLiveLocalsAfter(Unit u)
LiveLocalsgetLiveLocalsAfter in interface LiveLocalsu - the Unit that defines this query.public static CombinedAnalysis v(UnitGraph graph)
protected void merge(java.lang.Object inoutO,
java.lang.Object inO)
protected void merge(java.lang.Object in1O,
java.lang.Object in2O,
java.lang.Object outO)
AbstractFlowAnalysisin1 and in2 sets, putting the result into out.
The behavior of this function depends on the implementation ( it may be necessary to check whether
in1 and in2 are equal or aliased ).
Used by the doAnalysis method.merge in class AbstractFlowAnalysisprotected void flowThrough(java.lang.Object outValue,
java.lang.Object unit,
java.lang.Object inValue)
FlowAnalysisout sets, compute the in set for s (or in to out, depending on direction).
This function often causes confusion, because the same interface
is used for both forward and backward flow analyses. The first
parameter is always the argument to the flow function (i.e. it
is the "in" set in a forward analysis and the "out" set in a
backward analysis), and the third parameter is always the result
of the flow function (i.e. it is the "out" set in a forward
analysis and the "in" set in a backward analysis).flowThrough in class FlowAnalysisprotected java.lang.Object entryInitialFlow()
AbstractFlowAnalysisentryInitialFlow in class AbstractFlowAnalysisprotected java.lang.Object newInitialFlow()
AbstractFlowAnalysisnewInitialFlow in class AbstractFlowAnalysisprotected void copy(java.lang.Object source,
java.lang.Object dest)
AbstractFlowAnalysissource flow object in dest.copy in class AbstractFlowAnalysisCopyright © 2012-2019 RoboVM AB. All Rights Reserved.