Mercurial > hg > graal-compiler
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;