changeset 20134:9dcf9f8779c2

fix for replay compilation support
author Doug Simon <doug.simon@oracle.com>
date Thu, 02 Apr 2015 10:00:21 +0200
parents 374b48caeb9c
children 987b4c42aef9
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java
diffstat 1 files changed, 15 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java	Wed Apr 01 19:30:25 2015 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java	Thu Apr 02 10:00:21 2015 +0200
@@ -72,14 +72,26 @@
         return null;
     }
 
+    // Lazily initialized
+    private ResolvedJavaType wordTypesType;
+    private ResolvedJavaType runtimeType;
+    private ResolvedJavaType configType;
+
     public Object getInjectedNodeIntrinsicParameter(ResolvedJavaType type) {
-        if (type.isInstance(forObject(runtime.getHostProviders().getWordTypes()))) {
+        if (wordTypesType == null) {
+            MetaAccessProvider metaAccess = runtime.getHostProviders().getMetaAccess();
+            wordTypesType = metaAccess.lookupJavaType(runtime.getHostProviders().getWordTypes().getClass());
+            runtimeType = metaAccess.lookupJavaType(runtime.getClass());
+            configType = metaAccess.lookupJavaType(runtime.getConfig().getClass());
+        }
+
+        if (type.isAssignableFrom(wordTypesType)) {
             return runtime.getHostProviders().getWordTypes();
         }
-        if (type.isInstance(forObject(runtime))) {
+        if (type.isAssignableFrom(runtimeType)) {
             return runtime;
         }
-        if (type.isInstance(forObject(runtime.getConfig()))) {
+        if (type.isAssignableFrom(configType)) {
             return runtime.getConfig();
         }
         return null;