# HG changeset patch # User Lukas Stadler # Date 1375895591 -7200 # Node ID 27a4151480900267c48bc0e98a2867d164d1bbe5 # Parent e38a3c10005a231fac1ae017a7151cdb165b5688 don't intrinsify Object.getClass and NodeClass.get in AOT diff -r e38a3c10005a -r 27a415148090 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectGetClassNode.java --- 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 { diff -r e38a3c10005a -r 27a415148090 graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeClassSubstitutions.java --- 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())); } }