public class ArrayCopyTypeFlow extends TypeFlow<jdk.vm.ci.code.BytecodePosition>
BasicArrayCopyNode
node which intrinsifies calls to System.arraycopy(). This flow registers itself as an observer
for both the source and the destination. When either the source or the destination elements
change the element flows from source are passed to destination.context, declaredType, graphRef, id, inQueue, nextId, source, usedAsAParameter, usedAsAReceiver| Constructor and Description |
|---|
ArrayCopyTypeFlow(PointsToAnalysis bb,
ArrayCopyTypeFlow original,
MethodFlowsGraph methodFlows) |
ArrayCopyTypeFlow(org.graalvm.compiler.nodes.ValueNode source,
AnalysisType declaredType,
TypeFlow<?> srcArrayFlow,
TypeFlow<?> dstArrayFlow) |
| Modifier and Type | Method and Description |
|---|---|
TypeFlow<jdk.vm.ci.code.BytecodePosition> |
copy(PointsToAnalysis bb,
MethodFlowsGraph methodFlows)
By default a type flow is not cloneable.
|
TypeFlow<?> |
destination() |
void |
onObservedUpdate(PointsToAnalysis bb)
Notify the observer that the observed type flow state has changed.
|
TypeFlow<?> |
source() |
String |
toString() |
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, addState, addState, addUse, canSaturate, context, declaredTypeFilter, doAddUse, equals, filter, format, formatSource, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initClone, isAllInstantiated, isClone, isSaturated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObserverOfSaturation, notifyObservers, notifyUseOfSaturation, onInputSaturated, onObservedSaturated, onSaturated, receiver, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setObserved, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapAtObserver, swapAtUse, swapOut, updatepublic ArrayCopyTypeFlow(org.graalvm.compiler.nodes.ValueNode source,
AnalysisType declaredType,
TypeFlow<?> srcArrayFlow,
TypeFlow<?> dstArrayFlow)
public ArrayCopyTypeFlow(PointsToAnalysis bb, ArrayCopyTypeFlow original, MethodFlowsGraph methodFlows)
public TypeFlow<jdk.vm.ci.code.BytecodePosition> copy(PointsToAnalysis bb, MethodFlowsGraph methodFlows)
TypeFlowpublic void onObservedUpdate(PointsToAnalysis bb)
TypeFlowonObservedUpdate in class TypeFlow<jdk.vm.ci.code.BytecodePosition>public TypeFlow<?> source()
public TypeFlow<?> destination()