changeset 9659:c5b1b4dcc094

create fake JavaMethod for non-snippet stubs so that -G:MethodFilter can be applied to them
author Doug Simon <doug.simon@oracle.com>
date Mon, 13 May 2013 13:57:24 +0200
parents d64083db3c11
children c37c52445e75
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/RuntimeCallStub.java
diffstat 1 files changed, 34 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/RuntimeCallStub.java	Mon May 13 13:51:59 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/RuntimeCallStub.java	Mon May 13 13:57:24 2013 +0200
@@ -22,6 +22,7 @@
  */
 package com.oracle.graal.hotspot.stubs;
 
+import static com.oracle.graal.api.meta.MetaUtil.*;
 import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*;
 
 import java.util.*;
@@ -121,7 +122,31 @@
 
     @Override
     protected Object debugScopeContext() {
-        return new DebugDumpScope(linkage.descriptor.getName());
+        return new JavaMethod() {
+
+            public Signature getSignature() {
+                Descriptor d = linkage.descriptor;
+                Class<?>[] arguments = d.getArgumentTypes();
+                JavaType[] parameters = new JavaType[arguments.length];
+                for (int i = 0; i < arguments.length; i++) {
+                    parameters[i] = runtime.lookupJavaType(arguments[i]);
+                }
+                return new HotSpotSignature(runtime.lookupJavaType(d.getResultType()), parameters);
+            }
+
+            public String getName() {
+                return linkage.descriptor.getName();
+            }
+
+            public JavaType getDeclaringClass() {
+                return runtime.lookupJavaType(RuntimeCallStub.class);
+            }
+
+            @Override
+            public String toString() {
+                return format("HotSpotStub<%n(%p)>", this);
+            }
+        };
     }
 
     @Override
@@ -164,9 +189,17 @@
         ReturnNode ret = graph.add(new ReturnNode(linkage.descriptor.getResultType() == void.class ? null : call));
         graph.addAfterFixed(hpeInvoke, ret);
 
+        if (Debug.isDumpEnabled()) {
+            Debug.dump(graph, "Initial stub graph");
+        }
+
         // Inline call to handlePendingException
         inline(hpeInvoke);
 
+        if (Debug.isDumpEnabled()) {
+            Debug.dump(graph, "Stub graph before compilation");
+        }
+
         return graph;
     }