public final class DynamicNewInstanceTypeFlow extends TypeFlow<jdk.vm.ci.code.BytecodePosition>
Modifier and Type | Field and Description |
---|---|
protected AnalysisContext |
allocationContext
The allocation context for the generated dynamic object.
|
protected BytecodeLocation |
allocationSite |
protected TypeFlow<?> |
newTypeFlow
The new type provider.
|
context, declaredType, graphRef, id, inQueue, nextId, source, usedAsAParameter, usedAsAReceiver
Constructor and Description |
---|
DynamicNewInstanceTypeFlow(TypeFlow<?> newTypeFlow,
AnalysisType type,
org.graalvm.compiler.nodes.ValueNode node,
BytecodeLocation allocationLabel) |
Modifier and Type | Method and Description |
---|---|
AnalysisContext |
allocationContext() |
BytecodeLocation |
allocationSite() |
boolean |
canSaturate()
Can this type flow saturate? By default all type flows can saturate, with the exception of a
few ones that need to track all their types, e.g., AllInstantiated, AllSynchronized, etc.
|
TypeFlow<jdk.vm.ci.code.BytecodePosition> |
copy(BigBang bb,
MethodFlowsGraph methodFlows)
By default a type flow is not cloneable.
|
void |
initClone(BigBang bb)
Initialization code for some clone corner case type flows.
|
TypeFlow<?> |
newTypeFlow() |
void |
onObservedSaturated(BigBang bb,
TypeFlow<?> observed)
Notified by an observed flow that it is saturated.
|
void |
onObservedUpdate(BigBang bb)
Notify the observer that the observed type flow state has changed.
|
void |
setObserved(TypeFlow<?> declaredTypeFlow)
Set the type flow that this flow is observing.
|
String |
toString() |
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, addState, addState, addUse, context, declaredTypeFilter, doAddUse, equals, filter, getDeclaredType, getInputs, getObservees, getObservers, getSlot, getSource, getState, getUses, graphRef, hashCode, id, isAllInstantiated, isClone, isCloseToAllInstantiated, isSaturated, isUsedAsAParameter, isUsedAsAReceiver, method, notifyObservers, onInputSaturated, onSaturated, receiver, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapOut, update
protected final BytecodeLocation allocationSite
protected TypeFlow<?> newTypeFlow
protected final AnalysisContext allocationContext
public DynamicNewInstanceTypeFlow(TypeFlow<?> newTypeFlow, AnalysisType type, org.graalvm.compiler.nodes.ValueNode node, BytecodeLocation allocationLabel)
public TypeFlow<jdk.vm.ci.code.BytecodePosition> copy(BigBang bb, MethodFlowsGraph methodFlows)
TypeFlow
public void initClone(BigBang bb)
TypeFlow
public void onObservedUpdate(BigBang bb)
TypeFlow
onObservedUpdate
in class TypeFlow<jdk.vm.ci.code.BytecodePosition>
public TypeFlow<?> newTypeFlow()
public BytecodeLocation allocationSite()
public AnalysisContext allocationContext()
public void setObserved(TypeFlow<?> declaredTypeFlow)
TypeFlow
setObserved
in class TypeFlow<jdk.vm.ci.code.BytecodePosition>
public void onObservedSaturated(BigBang bb, TypeFlow<?> observed)
TypeFlow
onObservedSaturated
in class TypeFlow<jdk.vm.ci.code.BytecodePosition>
public boolean canSaturate()
TypeFlow
canSaturate
in class TypeFlow<jdk.vm.ci.code.BytecodePosition>