public abstract class InvokeTypeFlow extends TypeFlow<org.graalvm.compiler.nodes.java.MethodCallTargetNode>
| Modifier and Type | Field and Description |
|---|---|
protected TypeFlow<?>[] |
actualParameters
Actual parameters passed to the callee.
|
protected ActualReturnTypeFlow |
actualReturn
Result type flow returned by the callee.
|
protected org.graalvm.compiler.nodes.Invoke |
invoke |
protected BytecodeLocation |
location |
protected InvokeTypeFlow |
originalInvoke |
context, declaredType, graphRef, id, inQueue, nextId, source, usedAsAParameter, usedAsAReceiver| Modifier | Constructor and Description |
|---|---|
protected |
InvokeTypeFlow(BigBang bb,
MethodFlowsGraph methodFlows,
InvokeTypeFlow original) |
protected |
InvokeTypeFlow(org.graalvm.compiler.nodes.Invoke invoke,
org.graalvm.compiler.nodes.java.MethodCallTargetNode target,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
BytecodeLocation location) |
| Modifier and Type | Method and Description |
|---|---|
int |
actualParametersCount() |
boolean |
addState(BigBang bb,
TypeState add) |
boolean |
canBeStaticallyBound()
Checks if this invoke can be statically bound.
|
TypeFlow<?> |
getActualParameter(int index) |
TypeFlow<?>[] |
getActualParameters() |
TypeFlow<?> |
getActualReturn() |
abstract Collection<AnalysisMethod> |
getCallees()
Returns the callees that were linked at this invoke.
|
abstract Collection<MethodFlowsGraph> |
getCalleesFlows(BigBang bb)
Returns the context sensitive method flows for the callees resolved for the invoke type flow.
|
org.graalvm.compiler.debug.DebugContext |
getDebug() |
BytecodeLocation |
getLocation() |
TypeFlow<?> |
getReceiver() |
TypeFlow<?> |
getResult() |
AnalysisMethod |
getTargetMethod() |
org.graalvm.compiler.nodes.Invoke |
invoke() |
protected void |
linkCallee(BigBang bb,
boolean isStatic,
MethodFlowsGraph calleeFlows) |
void |
setActualReturn(ActualReturnTypeFlow actualReturn) |
protected void |
updateReceiver(BigBang bb,
MethodFlowsGraph calleeFlows,
AnalysisObject receiverObject) |
protected void |
updateReceiver(BigBang bb,
MethodFlowsGraph calleeFlows,
TypeState receiverTypeState) |
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, addState, addUse, clearUses, context, copy, doAddObserver, doAddUse, equals, filter, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initClone, isAllInstantiated, isClone, isCloseToAllInstantiated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObservers, onObservedUpdate, receiver, removeInput, removeObservee, removeObserver, removeUse, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, toString, updateprotected final BytecodeLocation location
protected final TypeFlow<?>[] actualParameters
protected ActualReturnTypeFlow actualReturn
protected final org.graalvm.compiler.nodes.Invoke invoke
protected final InvokeTypeFlow originalInvoke
protected InvokeTypeFlow(org.graalvm.compiler.nodes.Invoke invoke,
org.graalvm.compiler.nodes.java.MethodCallTargetNode target,
TypeFlow<?>[] actualParameters,
ActualReturnTypeFlow actualReturn,
BytecodeLocation location)
protected InvokeTypeFlow(BigBang bb, MethodFlowsGraph methodFlows, InvokeTypeFlow original)
public BytecodeLocation getLocation()
public org.graalvm.compiler.debug.DebugContext getDebug()
public AnalysisMethod getTargetMethod()
public int actualParametersCount()
public org.graalvm.compiler.nodes.Invoke invoke()
public TypeFlow<?>[] getActualParameters()
public TypeFlow<?> getReceiver()
public TypeFlow<?> getActualParameter(int index)
public TypeFlow<?> getActualReturn()
public void setActualReturn(ActualReturnTypeFlow actualReturn)
public TypeFlow<?> getResult()
protected void updateReceiver(BigBang bb, MethodFlowsGraph calleeFlows, AnalysisObject receiverObject)
protected void updateReceiver(BigBang bb, MethodFlowsGraph calleeFlows, TypeState receiverTypeState)
protected void linkCallee(BigBang bb, boolean isStatic, MethodFlowsGraph calleeFlows)
public abstract Collection<AnalysisMethod> getCallees()
public boolean canBeStaticallyBound()
public abstract Collection<MethodFlowsGraph> getCalleesFlows(BigBang bb)