changeset 21715:67e28e817d32

HotSpotNodePlugin should use providers from GraphBuilderContext
author Andreas Woess <andreas.woess@oracle.com>
date Thu, 04 Jun 2015 01:00:44 +0200
parents fb9f7fe34624
children 2f9e4d984d16
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNodePlugin.java
diffstat 2 files changed, 6 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java	Thu Jun 04 01:00:00 2015 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java	Thu Jun 04 01:00:44 2015 +0200
@@ -78,7 +78,7 @@
         NodeIntrinsificationPhase nodeIntrinsificationPhase = new NodeIntrinsificationPhase(metaAccess, constantReflection, snippetReflection, foreignCalls, stampProvider);
         NodeIntrinsificationPlugin nodeIntrinsificationPlugin = new NodeIntrinsificationPlugin(metaAccess, nodeIntrinsificationPhase, wordTypes, false);
         HotSpotWordOperationPlugin wordOperationPlugin = new HotSpotWordOperationPlugin(snippetReflection, wordTypes);
-        HotSpotNodePlugin nodePlugin = new HotSpotNodePlugin(metaAccess, constantReflection, wordOperationPlugin, nodeIntrinsificationPlugin);
+        HotSpotNodePlugin nodePlugin = new HotSpotNodePlugin(wordOperationPlugin, nodeIntrinsificationPlugin);
 
         plugins.appendParameterPlugin(nodePlugin);
         plugins.appendNodePlugin(nodePlugin);
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNodePlugin.java	Thu Jun 04 01:00:00 2015 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNodePlugin.java	Thu Jun 04 01:00:44 2015 +0200
@@ -51,16 +51,10 @@
  * Constant folding of field loads.
  */
 public final class HotSpotNodePlugin implements NodePlugin, ParameterPlugin {
-    private final MetaAccessProvider metaAccess;
-    private final ConstantReflectionProvider constantReflection;
-
     protected final WordOperationPlugin wordOperationPlugin;
     protected final NodeIntrinsificationPlugin nodeIntrinsificationPlugin;
 
-    public HotSpotNodePlugin(MetaAccessProvider metaAccess, ConstantReflectionProvider constantReflection, WordOperationPlugin wordOperationPlugin,
-                    NodeIntrinsificationPlugin nodeIntrinsificationPlugin) {
-        this.metaAccess = metaAccess;
-        this.constantReflection = constantReflection;
+    public HotSpotNodePlugin(WordOperationPlugin wordOperationPlugin, NodeIntrinsificationPlugin nodeIntrinsificationPlugin) {
         this.wordOperationPlugin = wordOperationPlugin;
         this.nodeIntrinsificationPlugin = nodeIntrinsificationPlugin;
     }
@@ -121,7 +115,7 @@
         return false;
     }
 
-    private boolean tryReadField(GraphBuilderContext b, ResolvedJavaField field, JavaConstant object) {
+    private static boolean tryReadField(GraphBuilderContext b, ResolvedJavaField field, JavaConstant object) {
         // FieldReadEnabledInImmutableCode is non null only if assertions are enabled
         if (FieldReadEnabledInImmutableCode != null && ImmutableCode.getValue()) {
             FieldReadEnabledInImmutableCode.set(Boolean.TRUE);
@@ -135,10 +129,10 @@
         }
     }
 
-    private boolean tryConstantFold(GraphBuilderContext b, ResolvedJavaField field, JavaConstant object) {
-        JavaConstant result = constantReflection.readConstantFieldValue(field, object);
+    private static boolean tryConstantFold(GraphBuilderContext b, ResolvedJavaField field, JavaConstant object) {
+        JavaConstant result = b.getConstantReflection().readConstantFieldValue(field, object);
         if (result != null) {
-            ConstantNode constantNode = ConstantNode.forConstant(result, metaAccess, b.getGraph());
+            ConstantNode constantNode = ConstantNode.forConstant(result, b.getMetaAccess(), b.getGraph());
             b.push(field.getKind(), constantNode);
             return true;
         }