changeset 11257:27a415148090

don't intrinsify Object.getClass and NodeClass.get in AOT
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 07 Aug 2013 19:13:11 +0200
parents e38a3c10005a
children 064ce0777eba
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectGetClassNode.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeClassSubstitutions.java
diffstat 2 files changed, 11 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectGetClassNode.java	Wed Aug 07 18:37:53 2013 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectGetClassNode.java	Wed Aug 07 19:13:11 2013 +0200
@@ -22,6 +22,8 @@
  */
 package com.oracle.graal.hotspot.replacements;
 
+import static com.oracle.graal.phases.GraalOptions.*;
+
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.api.meta.ResolvedJavaType.Representation;
 import com.oracle.graal.nodes.*;
@@ -45,6 +47,9 @@
 
     @Override
     public void virtualize(VirtualizerTool tool) {
+        if (AOTCompilation.getValue()) {
+            return;
+        }
         State state = tool.getObjectState(getObject());
         if (state != null) {
             Constant clazz = state.getVirtualObject().type().getEncoding(Representation.JavaClass);
@@ -53,6 +58,9 @@
     }
 
     public ValueNode canonical(CanonicalizerTool tool) {
+        if (AOTCompilation.getValue()) {
+            return this;
+        }
         if (usages().isEmpty()) {
             return null;
         } else {
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeClassSubstitutions.java	Wed Aug 07 18:37:53 2013 +0200
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeClassSubstitutions.java	Wed Aug 07 19:13:11 2013 +0200
@@ -22,6 +22,8 @@
  */
 package com.oracle.graal.replacements;
 
+import static com.oracle.graal.phases.GraalOptions.*;
+
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.api.replacements.*;
 import com.oracle.graal.graph.*;
@@ -53,7 +55,7 @@
 
         @Override
         protected Constant evaluate(Constant param, MetaAccessProvider metaAccess) {
-            return Constant.forObject(NodeClass.get((Class<?>) param.asObject()));
+            return param.isNull() || AOTCompilation.getValue() ? null : Constant.forObject(NodeClass.get((Class<?>) param.asObject()));
         }
     }