public class NewInstanceTypeFlow extends SourceTypeFlowBase
Modifier and Type | Field and Description |
---|---|
protected BytecodeLocation |
allocationSite |
protected ConcurrentMap<AnalysisContext,AnalysisObject> |
heapObjectsCache
The original type flow keeps track of the heap objects created for the clones to avoid
duplication of heap object abstractions.
|
protected AnalysisType |
type
Source flow has an immutable type state.
|
sourceState
context, declaredType, graphRef, id, inQueue, nextId, source, usedAsAParameter, usedAsAReceiver
Modifier | Constructor and Description |
---|---|
protected |
NewInstanceTypeFlow(BigBang bb,
NewInstanceTypeFlow original,
MethodFlowsGraph methodFlows) |
|
NewInstanceTypeFlow(org.graalvm.compiler.nodes.ValueNode node,
AnalysisType type,
BytecodeLocation allocationLabel) |
protected |
NewInstanceTypeFlow(org.graalvm.compiler.nodes.ValueNode node,
AnalysisType type,
BytecodeLocation allocationLabel,
TypeState typeState) |
Modifier and Type | Method and Description |
---|---|
BytecodeLocation |
allocationSite() |
protected TypeState |
cloneSourceState(BigBang bb,
MethodFlowsGraph methodFlows)
Create the type state for a clone.
|
TypeFlow<jdk.vm.ci.code.BytecodePosition> |
copy(BigBang bb,
MethodFlowsGraph methodFlows)
By default a type flow is not cloneable.
|
String |
toString() |
AnalysisType |
type() |
addState, canSaturate, initClone, onInputSaturated, onObservedSaturated, onObservedUpdate, onSaturated
addInput, addObservee, addObserver, addOriginalObserver, addOriginalUse, 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, receiver, removeInput, removeObservee, removeObserver, removeUse, replacedObservedWith, replaceObservedWith, setObserved, setSaturated, setSlot, setState, setUsedAsAParameter, setUsedAsAReceiver, swapOut, update
protected volatile ConcurrentMap<AnalysisContext,AnalysisObject> heapObjectsCache
protected final AnalysisType type
protected final BytecodeLocation allocationSite
public NewInstanceTypeFlow(org.graalvm.compiler.nodes.ValueNode node, AnalysisType type, BytecodeLocation allocationLabel)
protected NewInstanceTypeFlow(org.graalvm.compiler.nodes.ValueNode node, AnalysisType type, BytecodeLocation allocationLabel, TypeState typeState)
protected NewInstanceTypeFlow(BigBang bb, NewInstanceTypeFlow original, MethodFlowsGraph methodFlows)
public TypeFlow<jdk.vm.ci.code.BytecodePosition> copy(BigBang bb, MethodFlowsGraph methodFlows)
TypeFlow
protected TypeState cloneSourceState(BigBang bb, MethodFlowsGraph methodFlows)
public BytecodeLocation allocationSite()
public AnalysisType type()