public class ArrayCopyTypeFlow extends TypeFlow<jdk.vm.ci.code.BytecodePosition>
ArrayCopy
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(BigBang 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(BigBang bb,
MethodFlowsGraph methodFlows)
By default a type flow is not cloneable.
|
TypeFlow<?> |
destination() |
void |
onObservedUpdate(BigBang 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, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initClone, isAllInstantiated, isClone, isCloseToAllInstantiated, isSaturated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObservers, onInputSaturated, onObservedSaturated, onSaturated, receiver, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setObserved, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapOut, update
public ArrayCopyTypeFlow(org.graalvm.compiler.nodes.ValueNode source, AnalysisType declaredType, TypeFlow<?> srcArrayFlow, TypeFlow<?> dstArrayFlow)
public ArrayCopyTypeFlow(BigBang bb, ArrayCopyTypeFlow original, MethodFlowsGraph methodFlows)
public TypeFlow<jdk.vm.ci.code.BytecodePosition> copy(BigBang bb, MethodFlowsGraph methodFlows)
TypeFlow
public void onObservedUpdate(BigBang bb)
TypeFlow
onObservedUpdate
in class TypeFlow<jdk.vm.ci.code.BytecodePosition>
public TypeFlow<?> source()
public TypeFlow<?> destination()