public class ArrayCopyTypeFlow extends TypeFlow<org.graalvm.compiler.nodes.ValueNode>
BasicArrayCopyNode 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<org.graalvm.compiler.nodes.ValueNode> |
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, clearUses, context, doAddObserver, doAddUse, equals, filter, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initClone, isAllInstantiated, isClone, isCloseToAllInstantiated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObservers, receiver, removeInput, removeObservee, removeObserver, removeUse, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, updatepublic ArrayCopyTypeFlow(org.graalvm.compiler.nodes.ValueNode source,
AnalysisType declaredType,
TypeFlow<?> srcArrayFlow,
TypeFlow<?> dstArrayFlow)
public ArrayCopyTypeFlow(BigBang bb, ArrayCopyTypeFlow original, MethodFlowsGraph methodFlows)
public TypeFlow<org.graalvm.compiler.nodes.ValueNode> copy(BigBang bb, MethodFlowsGraph methodFlows)
TypeFlowpublic void onObservedUpdate(BigBang bb)
TypeFlowonObservedUpdate in class TypeFlow<org.graalvm.compiler.nodes.ValueNode>public TypeFlow<?> source()
public TypeFlow<?> destination()