public class ProxyTypeFlow extends TypeFlow<org.graalvm.compiler.graph.Node>
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.
TODO: The use of proxy field flows can be avoided by adding an input list in each flow so that
when a flow is cloned it can register it's clones to it's inputs.| Modifier and Type | Field and Description |
|---|---|
protected TypeFlow<?> |
input |
context, declaredType, graphRef, id, inQueue, nextId, source, usedAsAParameter, usedAsAReceiver| Constructor and Description |
|---|
ProxyTypeFlow(org.graalvm.compiler.graph.Node source,
TypeFlow<?> input) |
ProxyTypeFlow(ProxyTypeFlow original,
MethodFlowsGraph methodFlows) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addState(BigBang bb,
TypeState add) |
boolean |
addUse(BigBang bb,
TypeFlow<?> use) |
TypeFlow<org.graalvm.compiler.graph.Node> |
copy(BigBang bb,
MethodFlowsGraph methodFlows)
By default a type flow is not cloneable.
|
TypeFlow<?> |
getInput() |
TypeState |
getState() |
void |
initClone(BigBang bb)
Initialization code for some clone corner case type flows.
|
String |
toString() |
void |
update(BigBang bb) |
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, addState, clearUses, context, doAddObserver, doAddUse, equals, filter, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getUses, graphRef, hashCode, id, isAllInstantiated, isClone, isCloseToAllInstantiated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObservers, onObservedUpdate, receiver, removeInput, removeObservee, removeObserver, removeUse, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiverprotected TypeFlow<?> input
public ProxyTypeFlow(org.graalvm.compiler.graph.Node source,
TypeFlow<?> input)
public ProxyTypeFlow(ProxyTypeFlow original, MethodFlowsGraph methodFlows)
public TypeFlow<org.graalvm.compiler.graph.Node> copy(BigBang bb, MethodFlowsGraph methodFlows)
TypeFlowpublic void initClone(BigBang bb)
TypeFlowpublic void update(BigBang bb)
public TypeState getState()
public TypeFlow<?> getInput()