protected class PEGraphDecoder.PEAppendGraphBuilderContext extends PEGraphDecoder.PENonAppendGraphBuilderContext
GraphBuilderContext.ExternalInliningContext| Modifier and Type | Field and Description |
|---|---|
protected boolean |
exceptionEdgeConsumed |
protected boolean |
invokeConsumed |
protected CallTargetNode.InvokeKind |
invokeKind |
protected JavaType |
invokeReturnType |
protected FixedWithNextNode |
lastInstr |
protected boolean |
parsingInvocationPlugin |
protected ValueNode |
pushedNode |
protected boolean |
unwindExceptions |
invoke, methodScope| Constructor and Description |
|---|
PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope,
FixedWithNextNode lastInstr) |
PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope,
FixedWithNextNode lastInstr,
boolean unwindExceptions) |
PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope,
FixedWithNextNode lastInstr,
CallTargetNode.InvokeKind invokeKind,
JavaType invokeReturnType,
boolean parsingInvocationPlugin,
boolean unwindExceptions) |
| Modifier and Type | Method and Description |
|---|---|
<T extends ValueNode> |
append(T v)
Adds the given node to the graph and also adds recursively all referenced inputs.
|
AbstractBeginNode |
genExplicitExceptionEdge(BytecodeExceptionNode.BytecodeExceptionKind exceptionKind,
ValueNode... exceptionArguments)
Generates an exception edge for the current bytecode.
|
CallTargetNode.InvokeKind |
getInvokeKind()
Gets the kind of invocation currently being parsed.
|
JavaType |
getInvokeReturnType()
Gets the return type of the invocation currently being parsed.
|
GraphBuilderContext |
getNonIntrinsicAncestor()
Gets the first ancestor parsing context that is not parsing a intrinsic.
|
void |
handleReplacedInvoke(CallTargetNode callTarget,
JavaKind resultType) |
boolean |
isParsingInvocationPlugin() |
void |
push(JavaKind kind,
ValueNode value)
Pushes a given value to the frame state stack using an explicit kind.
|
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.
|
bailout, bci, canDeferPlugin, getCode, getDepth, getExternalInliningContext, getGraph, getIntrinsic, getMethod, getParent, handleReplacedInvoke, needsExplicitException, recursiveInliningDepth, toStringgetConstantFieldProvider, getConstantReflection, getForeignCalls, getLoopsDataProvider, getLowerer, getMetaAccess, getMetaAccessExtensionProvider, getPlatformConfigurationProvider, getProviders, getReplacements, getStampProvider, getWordVerificationclone, equals, getClass, hashCode, notify, notifyAll, wait, wait, waitadd, addNonNullCast, addPush, allowDeoptInPlugins, bciCanBeDuplicated, canMergeIntrinsicReturns, emitBytecodeExceptionCheck, genCheckcastDynamic, getInvocationPluginBeforeState, getInvocationPluginReturnState, getInvokeReturnStamp, intrinsicRangeCheck, invokeFallback, isPluginEnabled, maskSubWordValue, maybeEmitExplicitDivisionByZeroCheck, maybeEmitExplicitNegativeArraySizeCheck, maybeEmitExplicitNegativeArraySizeCheck, nullCheckedValue, nullCheckedValue, parsingIntrinsic, pop, popArguments, replacePlugin, replacePluginWithExceptiongetAssumptions, getDebug, getOptions, shouldDeferPlugingetConstantFieldProvider, getConstantReflection, getForeignCalls, getLoopsDataProvider, getLowerer, getMetaAccess, getMetaAccessExtensionProvider, getPlatformConfigurationProvider, getReplacements, getStampProvider, getWordVerificationprotected FixedWithNextNode lastInstr
protected ValueNode pushedNode
protected boolean invokeConsumed
protected boolean exceptionEdgeConsumed
protected final CallTargetNode.InvokeKind invokeKind
protected final JavaType invokeReturnType
protected final boolean parsingInvocationPlugin
protected final boolean unwindExceptions
public PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope, FixedWithNextNode lastInstr, boolean unwindExceptions)
public PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope, FixedWithNextNode lastInstr)
public PEAppendGraphBuilderContext(PEGraphDecoder.PEMethodScope inlineScope, FixedWithNextNode lastInstr, CallTargetNode.InvokeKind invokeKind, JavaType invokeReturnType, boolean parsingInvocationPlugin, boolean unwindExceptions)
public boolean isParsingInvocationPlugin()
isParsingInvocationPlugin in interface GraphBuilderContextisParsingInvocationPlugin in class PEGraphDecoder.PENonAppendGraphBuilderContextpublic void push(JavaKind kind,
ValueNode value)
GraphBuilderContextvalue.getJavaKind() 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)
GraphBuilderToolappend in interface GraphBuilderToolappend in class PEGraphDecoder.PENonAppendGraphBuilderContextv - the node to be added to the graphpublic CallTargetNode.InvokeKind getInvokeKind()
GraphBuilderContextgetInvokeKind in interface GraphBuilderContextgetInvokeKind in class PEGraphDecoder.PENonAppendGraphBuilderContextpublic JavaType getInvokeReturnType()
GraphBuilderContextgetInvokeReturnType in interface GraphBuilderContextgetInvokeReturnType in class PEGraphDecoder.PENonAppendGraphBuilderContextpublic void handleReplacedInvoke(CallTargetNode callTarget, JavaKind resultType)
handleReplacedInvoke in interface GraphBuilderContexthandleReplacedInvoke in class PEGraphDecoder.PENonAppendGraphBuilderContextpublic AbstractBeginNode genExplicitExceptionEdge(BytecodeExceptionNode.BytecodeExceptionKind exceptionKind, ValueNode... exceptionArguments)
GraphBuilderContextGraphBuilderContext.needsExplicitException()
returns true, this method should return non-null begin nodes.exceptionKind - the type of exception to be created.exceptionArguments - the arguments for the exception.public GraphBuilderContext getNonIntrinsicAncestor()
GraphBuilderContext