public class ProxyTypeFlow extends TypeFlow<jdk.vm.ci.code.BytecodePosition>
AllInstantiatedTypeFlow
s. 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(BigBang bb,
TypeState add) |
TypeFlow<jdk.vm.ci.code.BytecodePosition> |
copy(BigBang bb,
MethodFlowsGraph methodFlows)
By default a type flow is not cloneable.
|
TypeFlow<?> |
getInput() |
TypeState |
getState() |
String |
toString() |
void |
update(BigBang bb) |
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, addState, addUse, canSaturate, context, declaredTypeFilter, doAddUse, equals, filter, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getUses, graphRef, hashCode, id, initClone, isAllInstantiated, isClone, isCloseToAllInstantiated, isSaturated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObservers, onInputSaturated, onObservedSaturated, onObservedUpdate, onSaturated, receiver, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setObserved, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapOut
protected 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(BigBang bb, MethodFlowsGraph methodFlows)
TypeFlow
public TypeFlow<?> getInput()
public void update(BigBang bb)
public TypeState getState()