Mercurial > hg > graal-compiler
changeset 14953:5a87cbdd8a09
Merge
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Wed, 02 Apr 2014 15:40:59 -0700 |
parents | 6decd59291a8 (current diff) 6b29befc7f38 (diff) |
children | eabad1ea62ce 4062efea018b |
files | graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java Wed Apr 02 11:54:49 2014 -0700 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java Wed Apr 02 15:40:59 2014 -0700 @@ -70,9 +70,10 @@ protected boolean tryIntrinsify(MethodCallTargetNode methodCallTargetNode, List<Node> cleanUpReturnList) { ResolvedJavaMethod target = methodCallTargetNode.targetMethod(); - NodeIntrinsic intrinsic = target.getAnnotation(Node.NodeIntrinsic.class); ResolvedJavaType declaringClass = target.getDeclaringClass(); StructuredGraph graph = methodCallTargetNode.graph(); + + NodeIntrinsic intrinsic = getIntrinsic(target); if (intrinsic != null) { assert target.getAnnotation(Fold.class) == null; assert Modifier.isStatic(target.getModifiers()) : "node intrinsic must be static: " + target; @@ -129,6 +130,13 @@ } /** + * Permits a subclass to override the default definition of "intrinsic". + */ + protected NodeIntrinsic getIntrinsic(ResolvedJavaMethod method) { + return method.getAnnotation(Node.NodeIntrinsic.class); + } + + /** * Permits a subclass to override the default definition of "foldable". */ protected boolean isFoldable(ResolvedJavaMethod method) {