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) {