private class PartialEvaluator.PEInlineInvokePlugin extends Object implements InlineInvokePlugin
InlineInvokePlugin.InlineInfo
Modifier and Type | Field and Description |
---|---|
private Deque<TruffleInlining> |
inlining |
private OptimizedDirectCallNode |
lastDirectCallNode |
private ReplacementsImpl |
replacements |
Constructor and Description |
---|
PEInlineInvokePlugin(TruffleInlining inlining,
ReplacementsImpl replacements) |
Modifier and Type | Method and Description |
---|---|
void |
notifyAfterInline(ResolvedJavaMethod inlinedTargetMethod)
Notification that a method was inlined.
|
InlineInvokePlugin.InlineInfo |
shouldInlineInvoke(GraphBuilderContext builder,
ResolvedJavaMethod original,
ValueNode[] arguments,
JavaType returnType)
Determines whether a call to a given method is to be inlined.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
notifyBeforeInline, notifyNotInlined
private Deque<TruffleInlining> inlining
private OptimizedDirectCallNode lastDirectCallNode
private final ReplacementsImpl replacements
public PEInlineInvokePlugin(TruffleInlining inlining, ReplacementsImpl replacements)
public InlineInvokePlugin.InlineInfo shouldInlineInvoke(GraphBuilderContext builder, ResolvedJavaMethod original, ValueNode[] arguments, JavaType returnType)
InlineInvokePlugin
Non-null return value with a non-null method
: That
method
is inlined. Note that it can be a different
method than the one specified here as the parameter, which allows method substitutions.
Non-null return value with a null method
, e.g.,
InlineInvokePlugin.InlineInfo.DO_NOT_INLINE_WITH_EXCEPTION
: The method is not inlined, and other plugins
with a lower priority cannot overwrite this decision.
Null return value: This plugin made no decision, other plugins with a lower priority are asked.
shouldInlineInvoke
in interface InlineInvokePlugin
builder
- the contextoriginal
- the target method of an invokearguments
- the arguments to the invokereturnType
- the return type derived from method
's signaturepublic void notifyAfterInline(ResolvedJavaMethod inlinedTargetMethod)
InlineInvokePlugin
notifyAfterInline
in interface InlineInvokePlugin
inlinedTargetMethod
- the inlined method