private static class SideEffectsAnalysis.VisibilityLocationAbstraction extends SideEffectsAnalysis.LocationAbstraction
Modifier and Type | Class and Description |
---|---|
private static class |
SideEffectsAnalysis.VisibilityLocationAbstraction.VisibilityBasedEffectLocation
An abstract effect location based the visibility of the
concrete storage location.
|
Modifier and Type | Field and Description |
---|---|
private static int |
CAPTURED_LOCAL_VARIABLE_LOCATION_MASK |
(package private) AbstractCompiler |
compiler |
private static int |
GLOBAL_VARIABLE_LOCATION_MASK |
private static int |
HEAP_LOCATION_MASK |
private static int |
LOCAL_VARIABLE_LOCATION_MASK |
private static int |
UNKNOWN_LOCATION_MASK
The "top" location.
|
(package private) SideEffectsAnalysis.VariableUseDeclarationMap |
variableUseMap |
(package private) VariableVisibilityAnalysis |
variableVisibilityAnalysis |
private static int |
VISIBILITY_LOCATION_NONE
The "bottom" location.
|
Modifier | Constructor and Description |
---|---|
private |
VisibilityLocationAbstraction(AbstractCompiler compiler,
VariableVisibilityAnalysis variableVisibilityAnalysis,
SideEffectsAnalysis.VariableUseDeclarationMap variableUseMap) |
Modifier and Type | Method and Description |
---|---|
(package private) SideEffectsAnalysis.LocationSummary |
calculateLocationSummary(Node node)
Calculates the MOD/REF summary for the given node.
|
private int |
effectMaskForVariableReference(Node variableReference)
Calculates the effect mask for a variable reference.
|
private java.util.Set<Node> |
findStorageLocationReferences(Node root)
Returns the set of references to storage locations (both variables
and the heap) under
root . |
(package private) SideEffectsAnalysis.EffectLocation |
getBottomLocation()
Returns an abstraction-specific EffectLocation representing
no location.
|
private static boolean |
isStorageNode(Node node)
Returns true if the node is a storage node.
|
private static boolean |
storageNodeIsLValue(Node node)
Return true if the storage node is an l-value.
|
private static boolean |
storageNodeIsRValue(Node node)
Return true if the storage node is an r-value.
|
calculateLocationSummary
private static final int VISIBILITY_LOCATION_NONE
private static final int UNKNOWN_LOCATION_MASK
private static final int LOCAL_VARIABLE_LOCATION_MASK
private static final int CAPTURED_LOCAL_VARIABLE_LOCATION_MASK
private static final int GLOBAL_VARIABLE_LOCATION_MASK
private static final int HEAP_LOCATION_MASK
AbstractCompiler compiler
VariableVisibilityAnalysis variableVisibilityAnalysis
SideEffectsAnalysis.VariableUseDeclarationMap variableUseMap
private VisibilityLocationAbstraction(AbstractCompiler compiler, VariableVisibilityAnalysis variableVisibilityAnalysis, SideEffectsAnalysis.VariableUseDeclarationMap variableUseMap)
SideEffectsAnalysis.LocationSummary calculateLocationSummary(Node node)
calculateLocationSummary
in class SideEffectsAnalysis.LocationAbstraction
private java.util.Set<Node> findStorageLocationReferences(Node root)
root
.private int effectMaskForVariableReference(Node variableReference)
SideEffectsAnalysis.EffectLocation getBottomLocation()
SideEffectsAnalysis.LocationAbstraction
The bottom location joined with any location should return that location.
getBottomLocation
in class SideEffectsAnalysis.LocationAbstraction
private static boolean isStorageNode(Node node)
private static boolean storageNodeIsRValue(Node node)
private static boolean storageNodeIsLValue(Node node)