public interface InvocationPlugin extends GraphBuilderPlugin
Modifier and Type | Interface and Description |
---|---|
static interface |
InvocationPlugin.Receiver
The receiver in a non-static method.
|
Modifier and Type | Method and Description |
---|---|
default boolean |
apply(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver) |
default boolean |
apply(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode arg) |
default boolean |
apply(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode arg1,
ValueNode arg2) |
default boolean |
apply(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode arg1,
ValueNode arg2,
ValueNode arg3) |
default boolean |
apply(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode arg1,
ValueNode arg2,
ValueNode arg3,
ValueNode arg4) |
default boolean |
apply(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode arg1,
ValueNode arg2,
ValueNode arg3,
ValueNode arg4,
ValueNode arg5) |
default boolean |
apply(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode arg1,
ValueNode arg2,
ValueNode arg3,
ValueNode arg4,
ValueNode arg5,
ValueNode arg6) |
default boolean |
apply(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode arg1,
ValueNode arg2,
ValueNode arg3,
ValueNode arg4,
ValueNode arg5,
ValueNode arg6,
ValueNode arg7) |
default boolean |
defaultHandler(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode... args)
Handles an invocation when a specific
apply method is not available. |
default boolean |
execute(GraphBuilderContext b,
jdk.vm.ci.meta.ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode[] argsIncludingReceiver)
Executes this plugin against a set of invocation arguments.
|
default StackTraceElement |
getApplySourceLocation(jdk.vm.ci.meta.MetaAccessProvider metaAccess) |
default boolean |
inlineOnly()
Determines if this plugin can only be used when inlining the method is it associated with.
|
default boolean |
isDecorator()
Determines if this plugin only decorates the method is it associated with.
|
default boolean inlineOnly()
default boolean isDecorator()
default boolean apply(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver)
default boolean apply(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode arg)
default boolean apply(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode arg1, ValueNode arg2)
default boolean apply(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode arg1, ValueNode arg2, ValueNode arg3)
default boolean apply(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode arg1, ValueNode arg2, ValueNode arg3, ValueNode arg4)
default boolean apply(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode arg1, ValueNode arg2, ValueNode arg3, ValueNode arg4, ValueNode arg5)
default boolean apply(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode arg1, ValueNode arg2, ValueNode arg3, ValueNode arg4, ValueNode arg5, ValueNode arg6)
default boolean apply(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode arg1, ValueNode arg2, ValueNode arg3, ValueNode arg4, ValueNode arg5, ValueNode arg6, ValueNode arg7)
default boolean execute(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode[] argsIncludingReceiver)
InvocationPlugin
dispatches to the apply(...)
method that matches the number of arguments.targetMethod
- the method for which this plugin is being appliedreceiver
- access to the receiver, null
if targetMethod
is staticargsIncludingReceiver
- all arguments to the invocation include the receiver in position
0 if targetMethod
is not statictrue
if this plugin handled the invocation of targetMethod
false
if the graph builder should process the invoke further (e.g., by
inlining it or creating an Invoke
node). A plugin that does not handle an
invocation must not modify the graph being constructed unless it is a
decorator.default boolean defaultHandler(GraphBuilderContext b, jdk.vm.ci.meta.ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode... args)
apply
method is not available.default StackTraceElement getApplySourceLocation(jdk.vm.ci.meta.MetaAccessProvider metaAccess)