public static final class LocalDefs.Factory
extends java.lang.Object
| Modifier and Type | Method and Description |
|---|---|
static LocalDefs |
newLocalDefs(Body body)
Creates a new LocalDefs analysis based on a
ExceptionalUnitGraph |
static LocalDefs |
newLocalDefs(Body body,
boolean expectUndefined)
Creates a new LocalDefs analysis based on a
ExceptionalUnitGraph
If you don't trust the input you should set expectUndefined
to true |
static LocalDefs |
newLocalDefs(UnitGraph graph)
Creates a new LocalDefs analysis based on a given
UnitGraph |
static LocalDefs |
newLocalDefs(UnitGraph graph,
boolean expectUndefined)
Creates a new LocalDefs analysis based on a given
UnitGraph. |
static LocalDefs |
newLocalDefsFlowInsensitive(UnitGraph graph)
Creates a new LocalDefs analysis based on a given
UnitGraph. |
public static LocalDefs newLocalDefs(Body body)
ExceptionalUnitGraphbody - ExceptionalUnitGraph.ExceptionalUnitGraph(Body),
UsesValidatorpublic static LocalDefs newLocalDefs(Body body, boolean expectUndefined)
ExceptionalUnitGraph
If you don't trust the input you should set expectUndefined
to truebody - expectUndefinedUses - if you expect uses of locals that are undefinedExceptionalUnitGraph.ExceptionalUnitGraph(Body)public static LocalDefs newLocalDefs(UnitGraph graph)
UnitGraphgraph - the graph to work withUnitGraph.UnitGraph(Body)public static LocalDefs newLocalDefs(UnitGraph graph, boolean expectUndefined)
UnitGraph.
If you don't trust the input you should set expectUndefined
to truegraph - the graph to work withexpectUndefined - if you expect uses of locals that are undefinedUnitGraph.UnitGraph(Body),
UsesValidatorpublic static LocalDefs newLocalDefsFlowInsensitive(UnitGraph graph)
UnitGraph.
This analysis will be flow-insensitive, i.e., for a given local, it
will always give all statements that ever write to that local regardless
of potential redefinitions in between.graph - the graph to work withUnitGraph.UnitGraph(Body),
UsesValidator