protected class PEGraphDecoder.PEAppendGraphBuilderContext extends PEGraphDecoder.PENonAppendGraphBuilderContext
Modifier and Type | Field and Description |
---|---|
protected FixedWithNextNode |
lastInstr |
protected ValueNode |
pushedNode |
invoke, methodScope
Constructor and Description |
---|
PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope,
FixedWithNextNode lastInstr) |
Modifier and Type | Method and Description |
---|---|
<T extends ValueNode> |
append(T v)
Raw operation for adding a node to the graph when neither
GraphBuilderContext.add(T) nor
GraphBuilderContext.addPush(Kind, ValueNode) can be used. |
void |
push(Kind kind,
ValueNode value)
Pushes a given value to the frame state stack using an explicit kind.
|
<T extends ValueNode> |
recursiveAppend(T v)
Adds the given node to the graph and also adds recursively all referenced inputs.
|
void |
setStateAfter(StateSplit stateSplit)
Creates a snap shot of the current frame state with the BCI of the instruction after the one
currently being parsed and assigns it to a given side
effect node.
|
private <T extends ValueNode> |
updateLastInstruction(T v) |
bailout, bci, getConstantReflection, getDepth, getGraph, getIntrinsic, getInvokeKind, getInvokeReturnType, getMetaAccess, getMethod, getParent, getStampProvider, handleReplacedInvoke, intrinsify
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
add, addPush, getAssumptions, getInvokeReturnStamp, getNonIntrinsicAncestor, nullCheckedValue, parsingIntrinsic
protected FixedWithNextNode lastInstr
protected ValueNode pushedNode
public PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope, FixedWithNextNode lastInstr)
public void push(Kind kind, ValueNode value)
GraphBuilderContext
value.getKind()
is different from the kind that the bytecode instruction
currently being parsed pushes to the stack.push
in interface GraphBuilderContext
push
in class PEGraphDecoder.PENonAppendGraphBuilderContext
kind
- the kind to use when type checking this operationvalue
- the value to push to the stack. The value must already have been
appended.public void setStateAfter(StateSplit stateSplit)
GraphBuilderContext
setStateAfter
in interface GraphBuilderContext
setStateAfter
in class PEGraphDecoder.PENonAppendGraphBuilderContext
stateSplit
- a side effect node just appended to the graphpublic <T extends ValueNode> T append(T v)
GraphBuilderContext
GraphBuilderContext.add(T)
nor
GraphBuilderContext.addPush(Kind, ValueNode)
can be used.append
in interface GraphBuilderContext
append
in class PEGraphDecoder.PENonAppendGraphBuilderContext
public <T extends ValueNode> T recursiveAppend(T v)
GraphBuilderContext
recursiveAppend
in interface GraphBuilderContext
recursiveAppend
in class PEGraphDecoder.PENonAppendGraphBuilderContext
v
- the node to be added to the graphprivate <T extends ValueNode> void updateLastInstruction(T v)