public class ProxyTypeFlow extends TypeFlow<jdk.vm.ci.code.BytecodePosition>
AllInstantiatedTypeFlows. The cloning mechanism needs a
mechanism to clone only those uses of these global flows that belong to the current cloned
method. Thus the proxy is just a level of indirection to the global flows where the local uses
can be attached.
A proxy type flow doesn't participate in any type flow updates. When a method is cloned it links
the clones of the uses/observers of the proxy flow directly to the input flow.| Modifier and Type | Field and Description |
|---|---|
protected TypeFlow<?> |
input |
context, declaredType, graphRef, id, inQueue, nextId, source, usedAsAParameter, usedAsAReceiver| Constructor and Description |
|---|
ProxyTypeFlow(jdk.vm.ci.code.BytecodePosition source,
TypeFlow<?> input) |
ProxyTypeFlow(org.graalvm.compiler.graph.Node source,
TypeFlow<?> input) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addState(PointsToAnalysis bb,
TypeState add) |
TypeFlow<jdk.vm.ci.code.BytecodePosition> |
copy(PointsToAnalysis bb,
MethodFlowsGraph methodFlows)
By default a type flow is not cloneable.
|
TypeFlow<?> |
getInput() |
TypeState |
getState() |
String |
toString() |
void |
update(PointsToAnalysis bb) |
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, addState, addUse, canSaturate, context, declaredTypeFilter, doAddUse, equals, filter, format, formatSource, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getUses, graphRef, hashCode, id, initClone, isAllInstantiated, isClone, isSaturated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObserverOfSaturation, notifyObservers, notifyUseOfSaturation, onInputSaturated, onObservedSaturated, onObservedUpdate, onSaturated, receiver, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setObserved, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapAtObserver, swapAtUse, swapOutprotected TypeFlow<?> input
public ProxyTypeFlow(org.graalvm.compiler.graph.Node source,
TypeFlow<?> input)
public ProxyTypeFlow(jdk.vm.ci.code.BytecodePosition source,
TypeFlow<?> input)
public TypeFlow<jdk.vm.ci.code.BytecodePosition> copy(PointsToAnalysis bb, MethodFlowsGraph methodFlows)
TypeFlowpublic TypeFlow<?> getInput()
public boolean addState(PointsToAnalysis bb, TypeState add)
public void update(PointsToAnalysis bb)
public TypeState getState()