diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java @ 19504:95aa11d4822d

refactored per-class InvocationPlugins registration into separate methods
author Doug Simon <doug.simon@oracle.com>
date Thu, 19 Feb 2015 13:25:23 +0100
parents b828f1f74625
children 14e703edb2ab
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java	Thu Feb 19 12:11:18 2015 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java	Thu Feb 19 13:25:23 2015 +0100
@@ -55,7 +55,13 @@
         SnippetReflectionProvider snippetReflection = providers.getSnippetReflection();
         Kind wordKind = providers.getCodeCache().getTarget().wordKind;
 
-        // Object.class
+        registerObjectPlugins(plugins, metaAccess);
+        registerClassPlugins(plugins, metaAccess);
+        registerStableOptionPlugins(plugins, metaAccess);
+        registerMetaspacePointerPlugins(plugins, metaAccess, snippetReflection, wordKind);
+    }
+
+    private static void registerObjectPlugins(InvocationPlugins plugins, MetaAccessProvider metaAccess) {
         Registration r = new Registration(plugins, metaAccess, Object.class);
         r.register1("getClass", Receiver.class, new InvocationPlugin() {
             public boolean apply(GraphBuilderContext builder, ValueNode rcvr) {
@@ -72,9 +78,10 @@
                 return true;
             }
         });
+    }
 
-        // Class.class
-        r = new Registration(plugins, metaAccess, Class.class);
+    private static void registerClassPlugins(InvocationPlugins plugins, MetaAccessProvider metaAccess) {
+        Registration r = new Registration(plugins, metaAccess, Class.class);
         r.register2("cast", Receiver.class, Object.class, new InvocationPlugin() {
             public boolean apply(GraphBuilderContext builder, ValueNode rcvr, ValueNode object) {
                 if (rcvr.isConstant() && !rcvr.isNullConstant()) {
@@ -100,9 +107,10 @@
                 return false;
             }
         });
+    }
 
-        // StableOptionValue.class
-        r = new Registration(plugins, metaAccess, StableOptionValue.class);
+    private static void registerStableOptionPlugins(InvocationPlugins plugins, MetaAccessProvider metaAccess) {
+        Registration r = new Registration(plugins, metaAccess, StableOptionValue.class);
         r.register1("getValue", Receiver.class, new InvocationPlugin() {
             public boolean apply(GraphBuilderContext builder, ValueNode rcvr) {
                 if (rcvr.isConstant() && !rcvr.isNullConstant()) {
@@ -115,9 +123,10 @@
                 return false;
             }
         });
+    }
 
-        // MetaspacePointer.class
-        r = new Registration(plugins, metaAccess, MetaspacePointer.class);
+    private static void registerMetaspacePointerPlugins(InvocationPlugins plugins, MetaAccessProvider metaAccess, SnippetReflectionProvider snippetReflection, Kind wordKind) {
+        Registration r = new Registration(plugins, metaAccess, MetaspacePointer.class);
         r.register1("isNull", Receiver.class, new InvocationPlugin() {
             public boolean apply(GraphBuilderContext builder, ValueNode pointer) {
                 assert pointer.stamp() instanceof MetaspacePointerStamp;
@@ -144,7 +153,7 @@
         registerWordOpPlugins(r, snippetReflection, wordKind, Kind.Byte, Kind.Short, Kind.Char, Kind.Int, Kind.Float, Kind.Long, Kind.Double);
     }
 
-    protected static void registerWordOpPlugins(Registration r, SnippetReflectionProvider snippetReflection, Kind wordKind, Kind... kinds) {
+    private static void registerWordOpPlugins(Registration r, SnippetReflectionProvider snippetReflection, Kind wordKind, Kind... kinds) {
         for (Kind kind : kinds) {
             String kindName = kind.getJavaName();
             kindName = toUpperCase(kindName.charAt(0)) + kindName.substring(1);