diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java @ 8627:75db7afee829

implemented lazy installation of replacements (GRAAL-137)
author Doug Simon <doug.simon@oracle.com>
date Wed, 03 Apr 2013 21:51:44 +0200
parents 8cb3984da2f8
children ce5750014c3d 9631f95971a3
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java	Wed Apr 03 16:56:43 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java	Wed Apr 03 21:51:44 2013 +0200
@@ -34,8 +34,8 @@
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
-import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
+import com.oracle.graal.api.replacements.*;
 import com.oracle.graal.debug.*;
 import com.oracle.graal.debug.internal.*;
 import com.oracle.graal.hotspot.*;
@@ -146,19 +146,16 @@
 
         // Install intrinsics.
         final HotSpotRuntime runtime = graalRuntime.getCapability(HotSpotRuntime.class);
+        final Replacements replacements = graalRuntime.getCapability(Replacements.class);
         if (GraalOptions.Intrinsify) {
-            Debug.scope("InstallReplacements", new Object[]{new DebugDumpScope("InstallReplacements")}, new Runnable() {
+            Debug.scope("RegisterReplacements", new Object[]{new DebugDumpScope("RegisterReplacements")}, new Runnable() {
 
                 @Override
                 public void run() {
-                    // Replacements cannot have speculative optimizations since they have
-                    // to be valid for the entire run of the VM.
-                    Assumptions assumptions = new Assumptions(false);
-                    ReplacementsInstaller installer = new HotSpotReplacementsInstaller(runtime, assumptions, runtime.getGraalRuntime().getTarget());
                     for (ReplacementsProvider provider : ServiceLoader.loadInstalled(ReplacementsProvider.class)) {
-                        provider.installReplacements(installer);
+                        provider.registerReplacements(replacements);
                     }
-                    runtime.installReplacements(graalRuntime.getBackend(), installer, assumptions);
+                    runtime.registerReplacements(replacements);
                 }
             });