public final class MethodHandleNode extends MacroNode implements Simplifiable
MethodHandle.| Modifier and Type | Class and Description |
|---|---|
static class |
MethodHandleNode.GraphAdder
A simple utility class for adding nodes to the graph when building a MethodHandle invoke.
|
MacroNode.MacroParamsNode.ConstantNodeParameter, Node.EdgeVisitor, Node.IndirectCanonicalization, Node.InjectedNodeParameter, Node.Input, Node.NodeInsertionStackTrace, Node.NodeIntrinsic, Node.NodeIntrinsicFactory, Node.OptionalInput, Node.Successor, Node.ValueNumberableMemoryKill.NoLocation| Modifier and Type | Field and Description |
|---|---|
protected IntrinsicMethod |
intrinsicMethod |
static NodeClass<MethodHandleNode> |
TYPE |
arguments, bci, callerMethod, invokeKind, returnStamp, stateAfter, targetMethodnextEMPTY_ARRAY, stampNODE_LIST, NOT_ITERABLE, TRACK_CREATION_POSITION, WithAllEdges, WithNoEdges, WithOnlyInputEdges, WithOnlySucessorEdgesMULTI_KILL_NO_LOCATION, NO_LOCATION| Constructor and Description |
|---|
MethodHandleNode(IntrinsicMethod intrinsicMethod,
MacroNode.MacroParams p) |
| Modifier and Type | Method and Description |
|---|---|
void |
simplify(SimplifierTool tool) |
static InvokeNode |
tryResolveTargetInvoke(MethodHandleNode.GraphAdder adder,
MethodHandleAccessProvider methodHandleAccess,
IntrinsicMethod intrinsicMethod,
ResolvedJavaMethod original,
int bci,
StampPair returnStamp,
ValueNode... arguments)
Attempts to transform application of an intrinsifiable
MethodHandle method into an
invocation on another method with possibly transformed arguments. |
afterClone, bci, createInvoke, getArguments, getContextMethod, getInvokeKind, getKilledLocationIdentity, getLocationIdentity, getTargetMethod, hasSideEffect, inferStamp, replaceWithInvoke, setStateAfter, stateAfter, toArgumentArray, verifyStampasFixedWithNextNode, next, setNextasFixedNode, verifyasConstant, asJavaConstant, asNode, asSerializableConstant, checkReplaceAtUsagesInvariants, getStackKind, graph, hasUsagesOtherThan, isAllowedUsageType, isConstant, isConstantPredicate, isDefaultConstant, isIllegalConstant, isJavaConstant, isNullConstant, isSerializableConstant, recursivelyDataFlowEqualsUpTo, setStamp, stamp, updateStamp, updateUsagesInterfaceapplyInputs, applySuccessors, assertFalse, assertTrue, cfgPredecessors, cfgSuccessors, clearInputs, clearNodeSourcePosition, clearSuccessors, copyWithInputs, copyWithInputs, dataFlowEquals, dynamicNodeSizeEstimate, estimatedNodeCycles, estimatedNodeSize, fail, formatTo, getCreationPosition, getDebug, getDebugProperties, getDebugProperties, getInsertionPosition, getNodeClass, getNodeSourcePosition, getOptions, getUsageCount, hasExactlyOneUsage, hashCode, hasMoreThanOneUsage, hasNoUsages, hasOnlyUsagesOfType, hasUsages, hasUsagesOfType, inputPositions, inputs, isAlive, isDeleted, isUnregistered, markDeleted, maybeNotifyZeroUsages, modCount, predecessor, pushInputs, removeUsage, replaceAllInputs, replaceAndDelete, replaceAtAllUsages, replaceAtMatchingUsages, replaceAtPredecessor, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsages, replaceAtUsagesAndDelete, replaceAtUsagesAndDelete, replaceFirstInput, replaceFirstSuccessor, safeDelete, setCreationPosition, setInsertionPosition, setNodeSourcePosition, singleUsage, successorPositions, successors, toString, toString, updateNodeSourcePosition, updatePredecessor, updateUsages, usages, valueEquals, verifyEdges, verifyInputs, verifySourcePosition, withNodeSourcePositionclone, equals, getClass, notify, notifyAll, wait, wait, waitassertArgumentCount, getArgument, getArgumentCount, lower, lowerReplacement, setBciasFixedNodeOrNull, updateInliningLogAfterClone, updateInliningLogAfterRegisterstatesasFixedNodeasNodeasMultiMemoryKill, asSingleMemoryKill, isMemoryKill, isMultiMemoryKill, isSingleMemoryKillpublic static final NodeClass<MethodHandleNode> TYPE
protected final IntrinsicMethod intrinsicMethod
public MethodHandleNode(IntrinsicMethod intrinsicMethod,
MacroNode.MacroParams p)
public static InvokeNode tryResolveTargetInvoke(MethodHandleNode.GraphAdder adder, MethodHandleAccessProvider methodHandleAccess, IntrinsicMethod intrinsicMethod, ResolvedJavaMethod original, int bci, StampPair returnStamp, ValueNode... arguments)
MethodHandle method into an
invocation on another method with possibly transformed arguments.methodHandleAccess - objects for accessing the implementation internals of a
MethodHandleintrinsicMethod - denotes the intrinsifiable MethodHandle method being processedbci - the BCI of the original MethodHandle callreturnStamp - return stamp of the original MethodHandle callarguments - arguments to the original MethodHandle callMethodHandle call or nullpublic void simplify(SimplifierTool tool)
simplify in interface Simplifiable