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, intrinsifyclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitadd, addPush, getAssumptions, getInvokeReturnStamp, getNonIntrinsicAncestor, nullCheckedValue, parsingIntrinsicprotected FixedWithNextNode lastInstr
protected ValueNode pushedNode
public PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope, FixedWithNextNode lastInstr)
public void push(Kind kind, ValueNode value)
GraphBuilderContextvalue.getKind() is different from the kind that the bytecode instruction
currently being parsed pushes to the stack.push in interface GraphBuilderContextpush in class PEGraphDecoder.PENonAppendGraphBuilderContextkind - 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)
GraphBuilderContextsetStateAfter in interface GraphBuilderContextsetStateAfter in class PEGraphDecoder.PENonAppendGraphBuilderContextstateSplit - a side effect node just appended to the graphpublic <T extends ValueNode> T append(T v)
GraphBuilderContextGraphBuilderContext.add(T) nor
GraphBuilderContext.addPush(Kind, ValueNode) can be used.append in interface GraphBuilderContextappend in class PEGraphDecoder.PENonAppendGraphBuilderContextpublic <T extends ValueNode> T recursiveAppend(T v)
GraphBuilderContextrecursiveAppend in interface GraphBuilderContextrecursiveAppend in class PEGraphDecoder.PENonAppendGraphBuilderContextv - the node to be added to the graphprivate <T extends ValueNode> void updateLastInstruction(T v)