public abstract class OffsetStoreTypeFlow extends TypeFlow<jdk.vm.ci.code.BytecodePosition>
Modifier and Type | Class and Description |
---|---|
static class |
OffsetStoreTypeFlow.AbstractUnsafeStoreTypeFlow |
static class |
OffsetStoreTypeFlow.AtomicWriteTypeFlow
Implements an atomic read and write operation type flow.
|
static class |
OffsetStoreTypeFlow.CompareAndSwapTypeFlow
Implements an unsafe compare and swap operation type flow.
|
static class |
OffsetStoreTypeFlow.JavaWriteTypeFlow
Implements the raw memory store operation type flow.
|
static class |
OffsetStoreTypeFlow.StoreIndexedTypeFlow
Implements the type flow of an indexed store operation.
|
static class |
OffsetStoreTypeFlow.UnsafePartitionStoreTypeFlow |
static class |
OffsetStoreTypeFlow.UnsafeStoreTypeFlow
Implements an unsafe store operation type flow.
|
Modifier and Type | Field and Description |
---|---|
protected TypeFlow<?> |
objectFlow
The flow of the receiver object.
|
context, declaredType, graphRef, id, inQueue, nextId, source, usedAsAParameter, usedAsAReceiver
Constructor and Description |
---|
OffsetStoreTypeFlow(BigBang bb,
MethodFlowsGraph methodFlows,
OffsetStoreTypeFlow original) |
OffsetStoreTypeFlow(org.graalvm.compiler.nodes.ValueNode node,
AnalysisType objectType,
AnalysisType componentType,
TypeFlow<?> objectFlow,
TypeFlow<?> valueFlow) |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
addState(BigBang bb,
TypeState add) |
abstract TypeFlow<jdk.vm.ci.code.BytecodePosition> |
copy(BigBang bb,
MethodFlowsGraph methodFlows)
By default a type flow is not cloneable.
|
TypeState |
getObjectState()
Return the state of the receiver object.
|
void |
onObservedSaturated(BigBang bb,
TypeFlow<?> observed)
Notified by an observed flow that it is saturated.
|
abstract void |
onObservedUpdate(BigBang bb)
Notify the observer that the observed type flow state has changed.
|
TypeFlow<?> |
receiver()
Some flow have a reciver (e.g., loads, store and invokes).
|
void |
setObserved(TypeFlow<?> newObjectFlow)
Set the type flow that this flow is observing.
|
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, addState, addUse, canSaturate, context, declaredTypeFilter, doAddUse, equals, filter, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initClone, isAllInstantiated, isClone, isCloseToAllInstantiated, isSaturated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObservers, onInputSaturated, onSaturated, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapOut, toString, update
protected TypeFlow<?> objectFlow
public OffsetStoreTypeFlow(org.graalvm.compiler.nodes.ValueNode node, AnalysisType objectType, AnalysisType componentType, TypeFlow<?> objectFlow, TypeFlow<?> valueFlow)
public OffsetStoreTypeFlow(BigBang bb, MethodFlowsGraph methodFlows, OffsetStoreTypeFlow original)
public TypeFlow<?> receiver()
TypeFlow
public TypeState getObjectState()
public abstract TypeFlow<jdk.vm.ci.code.BytecodePosition> copy(BigBang bb, MethodFlowsGraph methodFlows)
TypeFlow
public void setObserved(TypeFlow<?> newObjectFlow)
TypeFlow
setObserved
in class TypeFlow<jdk.vm.ci.code.BytecodePosition>
public abstract void onObservedUpdate(BigBang bb)
TypeFlow
onObservedUpdate
in class TypeFlow<jdk.vm.ci.code.BytecodePosition>
public void onObservedSaturated(BigBang bb, TypeFlow<?> observed)
TypeFlow
onObservedSaturated
in class TypeFlow<jdk.vm.ci.code.BytecodePosition>