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)
ExceptionalUnitGraph
body
- ExceptionalUnitGraph.ExceptionalUnitGraph(Body)
,
UsesValidator
public static LocalDefs newLocalDefs(Body body, boolean expectUndefined)
ExceptionalUnitGraph
If you don't trust the input you should set expectUndefined
to true
body
- expectUndefinedUses
- if you expect uses of locals that are undefinedExceptionalUnitGraph.ExceptionalUnitGraph(Body)
public static LocalDefs newLocalDefs(UnitGraph graph)
UnitGraph
graph
- 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 true
graph
- the graph to work withexpectUndefined
- if you expect uses of locals that are undefinedUnitGraph.UnitGraph(Body)
,
UsesValidator
public 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