public class MethodTypeFlow extends TypeFlow<AnalysisMethod>
Modifier and Type | Field and Description |
---|---|
protected ConcurrentMap<AnalysisContext,MethodFlowsGraph> |
clonedMethodFlows |
protected MethodFlowsGraph |
originalMethodFlows |
context, declaredType, graphRef, id, inQueue, nextId, source, usedAsAParameter, usedAsAReceiver
Constructor and Description |
---|
MethodTypeFlow(org.graalvm.compiler.options.OptionValues options,
AnalysisMethod method) |
Modifier and Type | Method and Description |
---|---|
MethodFlowsGraph |
addContext(BigBang bb,
AnalysisContext calleeContext,
InvokeTypeFlow reason)
Add the context, if not already added, and return the method flows clone from that context.
|
protected void |
addInstanceOf(Object key,
InstanceOfTypeFlow instanceOf) |
protected void |
addInvoke(Object key,
InvokeTypeFlow invokeTypeFlow) |
void |
addMiscEntry(TypeFlow<?> input) |
void |
addNodeFlow(BigBang bb,
org.graalvm.compiler.graph.Node node,
TypeFlow<?> input) |
void |
ensureTypeFlowCreated(BigBang bb,
InvokeTypeFlow reason) |
TypeState |
foldTypeFlow(BigBang bb,
TypeFlow<?> originalTypeFlow)
Get a type state containing the union of states over all the clones of the original flow.
|
AnalysisContext[] |
getContexts() |
Collection<MethodFlowsGraph> |
getFlows() |
MethodFlowsGraph |
getFlows(AnalysisContext calleeContext) |
Collection<InvokeTypeFlow> |
getInvokes() |
int |
getLocalCallingContextDepth() |
AnalysisMethod |
getMethod() |
Map<AnalysisContext,MethodFlowsGraph> |
getMethodContextFlows() |
MethodFlowsGraph |
getOriginalMethodFlows() |
FormalParamTypeFlow |
getParameterFlow(int idx) |
TypeState |
getParameterTypeState(BigBang bb,
int parameter) |
StackTraceElement[] |
getParsingContext() |
InvokeTypeFlow |
getParsingReason() |
protected FormalReturnTypeFlow |
getResultFlow() |
org.graalvm.compiler.nodes.ParameterNode |
getReturnedParameter()
If the method returns a parameter through all of the return nodes then that ParameterNode is
returned, otherwise null.
|
boolean |
isSaturated(BigBang bb,
TypeFlow<?> originalTypeFlow)
Check if the type flow is saturated, i.e., any of its clones is saturated.
|
void |
setInitialParameterFlow(BigBang bb,
AnalysisType declaredType,
int i) |
void |
setInitialReceiverFlow(BigBang bb,
AnalysisType declaringType) |
void |
setParameter(int index,
FormalParamTypeFlow parameter) |
void |
setResult(FormalReturnTypeFlow result) |
String |
toString() |
void |
update(BigBang bb) |
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, addState, addState, addUse, canSaturate, context, copy, declaredTypeFilter, doAddUse, equals, filter, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, 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 MethodFlowsGraph originalMethodFlows
protected final ConcurrentMap<AnalysisContext,MethodFlowsGraph> clonedMethodFlows
public MethodTypeFlow(org.graalvm.compiler.options.OptionValues options, AnalysisMethod method)
public AnalysisMethod getMethod()
public InvokeTypeFlow getParsingReason()
public StackTraceElement[] getParsingContext()
public MethodFlowsGraph addContext(BigBang bb, AnalysisContext calleeContext, InvokeTypeFlow reason)
public AnalysisContext[] getContexts()
public int getLocalCallingContextDepth()
public Map<AnalysisContext,MethodFlowsGraph> getMethodContextFlows()
public Collection<MethodFlowsGraph> getFlows()
public MethodFlowsGraph getFlows(AnalysisContext calleeContext)
public void setResult(FormalReturnTypeFlow result)
public void setParameter(int index, FormalParamTypeFlow parameter)
public void setInitialReceiverFlow(BigBang bb, AnalysisType declaringType)
public void setInitialParameterFlow(BigBang bb, AnalysisType declaredType, int i)
protected void addInstanceOf(Object key, InstanceOfTypeFlow instanceOf)
public void addNodeFlow(BigBang bb, org.graalvm.compiler.graph.Node node, TypeFlow<?> input)
public void addMiscEntry(TypeFlow<?> input)
protected void addInvoke(Object key, InvokeTypeFlow invokeTypeFlow)
public MethodFlowsGraph getOriginalMethodFlows()
public TypeState foldTypeFlow(BigBang bb, TypeFlow<?> originalTypeFlow)
originalTypeFlow
- the original type flowpublic boolean isSaturated(BigBang bb, TypeFlow<?> originalTypeFlow)
public FormalParamTypeFlow getParameterFlow(int idx)
protected FormalReturnTypeFlow getResultFlow()
public Collection<InvokeTypeFlow> getInvokes()
public org.graalvm.compiler.nodes.ParameterNode getReturnedParameter()
public void ensureTypeFlowCreated(BigBang bb, InvokeTypeFlow reason)
public void update(BigBang bb)
update
in class TypeFlow<AnalysisMethod>
public String toString()
toString
in class TypeFlow<AnalysisMethod>