public class CallSiteSensitiveMethodTypeFlow extends MethodTypeFlow
flowsGraph, method| Constructor and Description |
|---|
CallSiteSensitiveMethodTypeFlow(org.graalvm.compiler.options.OptionValues options,
PointsToAnalysisMethod method) |
| Modifier and Type | Method and Description |
|---|---|
MethodFlowsGraphInfo |
addContext(PointsToAnalysis bb,
AnalysisContext calleeContext,
InvokeTypeFlow reason)
Add the context, if not already added, and return the method flows clone from that context.
|
TypeState |
foldTypeFlow(PointsToAnalysis bb,
TypeFlow<?> originalTypeFlow)
Get a type state containing the union of states over all the clones of the original flow.
|
Collection<MethodFlowsGraph> |
getFlows() |
int |
getLocalCallingContextDepth() |
protected void |
initFlowsGraph(PointsToAnalysis bb,
List<TypeFlow<?>> postInitFlows)
Run type flow initialization.
|
boolean |
isSaturated(PointsToAnalysis bb,
TypeFlow<?> originalTypeFlow)
Check if the type flow is saturated, i.e., any of its clones is saturated.
|
void |
setAsStubFlow()
Signals that a STUB graphkind should be generated upon creation.
|
String |
toString() |
boolean |
updateFlowsGraph(PointsToAnalysis bb,
MethodFlowsGraph.GraphKind newGraphKind,
InvokeTypeFlow newParsingReason,
boolean forceReparse)
Updates the kind of flow graph of associated with the type flow.
|
ensureFlowsGraphCreated, ensureFlowsGraphSealed, flowsGraphCreated, getInvokes, getMethod, getMethodFlowsGraph, getMethodFlowsGraphInfo, getOrCreateMethodFlowsGraphInfo, getParameter, getParsingReason, getReturnedParameterIndex, updateaddInput, addObservee, addObserver, addObserver, addState, addState, addUse, addUse, canSaturate, clearInputs, clearObservees, clearObservers, clearUses, copy, declaredTypeFilter, declaredTypeFilter, doAddUse, equals, filter, filterUncheckedInterface, format, formatSource, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, initFlow, invalidate, isAllInstantiated, isClone, isContextInsensitive, isSaturated, isValid, method, needsInitialization, notifyObserverOfSaturation, notifyUseOfSaturation, onInputSaturated, onObservedSaturated, onObservedUpdate, onSaturated, onSaturated, receiver, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setObserved, setSaturated, setSlot, setState, swapAtObserver, swapAtUse, swapOutpublic CallSiteSensitiveMethodTypeFlow(org.graalvm.compiler.options.OptionValues options,
PointsToAnalysisMethod method)
public MethodFlowsGraphInfo addContext(PointsToAnalysis bb, AnalysisContext calleeContext, InvokeTypeFlow reason)
protected void initFlowsGraph(PointsToAnalysis bb, List<TypeFlow<?>> postInitFlows)
MethodTypeFlowTypeFlowGraphBuilder.build(). Their initialization
needs to be triggered only after the graph is fully materialized such that lazily constructed
type flows (like InovkeTypeFlow.actualReturn) can observe the type state that other flows may
generate on initialization.initFlowsGraph in class MethodTypeFlowpublic int getLocalCallingContextDepth()
public Collection<MethodFlowsGraph> getFlows()
getFlows in class MethodTypeFlowpublic TypeState foldTypeFlow(PointsToAnalysis bb, TypeFlow<?> originalTypeFlow)
foldTypeFlow in class MethodTypeFloworiginalTypeFlow - the original type flowpublic boolean isSaturated(PointsToAnalysis bb, TypeFlow<?> originalTypeFlow)
isSaturated in class MethodTypeFlowpublic void setAsStubFlow()
MethodTypeFlowsetAsStubFlow in class MethodTypeFlowpublic boolean updateFlowsGraph(PointsToAnalysis bb, MethodFlowsGraph.GraphKind newGraphKind, InvokeTypeFlow newParsingReason, boolean forceReparse)
MethodTypeFlowupdateFlowsGraph in class MethodTypeFlowpublic String toString()
toString in class MethodTypeFlow