public class NodeIntrinsificationPlugin extends Object implements NodePlugin
Modifier and Type | Field and Description |
---|---|
private static MethodFilter[] |
MethodsElidedInSnippets
Calls in replacements to methods matching one of these filters are elided.
|
private boolean |
mustIntrinsify |
protected NodeIntrinsificationPhase |
nodeIntrinsification |
private ResolvedJavaType |
structuralInputType |
private WordTypes |
wordTypes |
Constructor and Description |
---|
NodeIntrinsificationPlugin(MetaAccessProvider metaAccess,
NodeIntrinsificationPhase nodeIntrinsification,
WordTypes wordTypes,
boolean mustIntrinsify) |
Modifier and Type | Method and Description |
---|---|
private ValueNode |
createNodeIntrinsic(GraphBuilderContext b,
ResolvedJavaMethod method,
Node.NodeIntrinsic intrinsic,
List<ValueNode> args,
Stamp stamp) |
private InputType |
getInputType(ResolvedJavaType type) |
private static MethodFilter[] |
getMethodsElidedInSnippets() |
boolean |
handleInvoke(GraphBuilderContext b,
ResolvedJavaMethod method,
ValueNode[] args)
Handle the parsing of a method invocation bytecode to a method that can be bound statically.
|
private boolean |
processNodeIntrinsic(GraphBuilderContext b,
ResolvedJavaMethod method,
Node.NodeIntrinsic intrinsic,
List<ValueNode> args,
Kind returnKind,
Stamp stamp) |
private static boolean |
reportIntrinsificationFailure(GraphBuilderContext b,
ResolvedJavaMethod method,
ValueNode[] args) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
canChangeStackKind, handleCheckCast, handleInstanceOf, handleLoadField, handleLoadIndexed, handleLoadStaticField, handleStoreField, handleStoreIndexed, handleStoreStaticField
protected final NodeIntrinsificationPhase nodeIntrinsification
private final ResolvedJavaType structuralInputType
private final boolean mustIntrinsify
private static final MethodFilter[] MethodsElidedInSnippets
public NodeIntrinsificationPlugin(MetaAccessProvider metaAccess, NodeIntrinsificationPhase nodeIntrinsification, WordTypes wordTypes, boolean mustIntrinsify)
private static MethodFilter[] getMethodsElidedInSnippets()
public boolean handleInvoke(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args)
NodePlugin
push
a value as the
result of the method invocation using the return kind
of the
method.handleInvoke
in interface NodePlugin
b
- the contextmethod
- the statically bound, invoked methodargs
- the arguments of the method invocationprivate static boolean reportIntrinsificationFailure(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args)
private InputType getInputType(ResolvedJavaType type)
private boolean processNodeIntrinsic(GraphBuilderContext b, ResolvedJavaMethod method, Node.NodeIntrinsic intrinsic, List<ValueNode> args, Kind returnKind, Stamp stamp)
private ValueNode createNodeIntrinsic(GraphBuilderContext b, ResolvedJavaMethod method, Node.NodeIntrinsic intrinsic, List<ValueNode> args, Stamp stamp)