changeset 12577:32d08d88c881

restricted initialization of ForeignCallProvider during VM startup to only be for the ForeignCallProvider of the host backend.
author Doug Simon <doug.simon@oracle.com>
date Fri, 25 Oct 2013 00:12:54 +0200
parents 847819feb98e
children 7315fb9b0679
files graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotForeignCallsProvider.java graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotForeignCallsProvider.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotForeignCallsProvider.java
diffstat 4 files changed, 3 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotForeignCallsProvider.java	Thu Oct 24 21:19:08 2013 +0200
+++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotForeignCallsProvider.java	Fri Oct 25 00:12:54 2013 +0200
@@ -25,7 +25,6 @@
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.graph.*;
-import com.oracle.graal.hotspot.*;
 import com.oracle.graal.hotspot.meta.*;
 
 public class HSAILHotSpotForeignCallsProvider implements HotSpotForeignCallsProvider {
@@ -55,7 +54,4 @@
     public Value[] getNativeABICallerSaveRegisters() {
         throw GraalInternalError.unimplemented();
     }
-
-    public void initialize(HotSpotProviders providers, HotSpotVMConfig config) {
-    }
 }
--- a/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotForeignCallsProvider.java	Thu Oct 24 21:19:08 2013 +0200
+++ b/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotForeignCallsProvider.java	Fri Oct 25 00:12:54 2013 +0200
@@ -25,7 +25,6 @@
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.graph.*;
-import com.oracle.graal.hotspot.*;
 import com.oracle.graal.hotspot.meta.*;
 
 public class PTXHotSpotForeignCallsProvider implements HotSpotForeignCallsProvider {
@@ -49,7 +48,4 @@
     public Value[] getNativeABICallerSaveRegisters() {
         throw GraalInternalError.unimplemented();
     }
-
-    public void initialize(HotSpotProviders providers, HotSpotVMConfig config) {
-    }
 }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java	Thu Oct 24 21:19:08 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java	Fri Oct 25 00:12:54 2013 +0200
@@ -181,7 +181,9 @@
         }
 
         final HotSpotProviders hostProviders = runtime.getHostProviders();
-        assert VerifyOptionsPhase.checkOptions(hostProviders.getMetaAccess(), hostProviders.getForeignCalls());
+        HotSpotHostForeignCallsProvider hostForeignCalls = (HotSpotHostForeignCallsProvider) hostProviders.getForeignCalls();
+        assert VerifyOptionsPhase.checkOptions(hostProviders.getMetaAccess(), hostForeignCalls);
+        hostForeignCalls.initialize(hostProviders, config);
 
         // Install intrinsics.
         if (Intrinsify.getValue()) {
@@ -191,17 +193,11 @@
                 public void run() {
 
                     List<LoweringProvider> initializedLowerers = new ArrayList<>();
-                    List<ForeignCallsProvider> initializedForeignCalls = new ArrayList<>();
 
                     for (Map.Entry<?, HotSpotBackend> e : runtime.getBackends().entrySet()) {
                         HotSpotBackend backend = e.getValue();
                         HotSpotProviders providers = backend.getProviders();
 
-                        HotSpotForeignCallsProvider foreignCalls = providers.getForeignCalls();
-                        if (!initializedForeignCalls.contains(foreignCalls)) {
-                            initializedForeignCalls.add(foreignCalls);
-                            foreignCalls.initialize(providers, config);
-                        }
                         HotSpotLoweringProvider lowerer = (HotSpotLoweringProvider) providers.getLowerer();
                         if (!initializedLowerers.contains(lowerer)) {
                             initializedLowerers.add(lowerer);
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotForeignCallsProvider.java	Thu Oct 24 21:19:08 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotForeignCallsProvider.java	Fri Oct 25 00:12:54 2013 +0200
@@ -24,15 +24,12 @@
 
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
-import com.oracle.graal.hotspot.*;
 
 /**
  * HotSpot extension of {@link ForeignCallsProvider}.
  */
 public interface HotSpotForeignCallsProvider extends ForeignCallsProvider {
 
-    void initialize(HotSpotProviders providers, HotSpotVMConfig config);
-
     /**
      * Gets the registers that must be saved across a foreign call into the runtime.
      */